Jquery 移动弹出窗口未使用 requireJS 和backboneJS 触发

Posted

技术标签:

【中文标题】Jquery 移动弹出窗口未使用 requireJS 和backboneJS 触发【英文标题】:Jquery mobile popup is not firing with requireJS & backboneJS 【发布时间】:2013-12-18 03:57:54 【问题描述】:

我使用jquery mobile 和backboneJS 进行路由。现在我的问题是我必须从我的函数中动态触发一个弹出窗口。

代码是:

define([
    'jquery',
    'underscore',
    'backbone',
        'jquerymobile',
        'views/nextview'
], function ($, _, Backbone, JqueryMobile, NextView) 
         'use strict';
        var Collection = '';
        var MyView = Backbone.View.extend(

         ......

          renderList: function(tasks)
             $(".results").each(function() 
               $(this).popup("open");
             );
          ,


        .......
);
return MyView;
);

html

<ul class="results" id="results" data-role="pop_up" data-transition="slidedown"></ul>

此 ul 中的 HTML 内容将由在此之前的另一个函数填充。

问题是,$(this).popup("open") 函数没有触发。

上面写着cannot call methods on popup prior to initialization;

【问题讨论】:

您可以同时打开多个弹窗,至少尝试一个。该错误意味着弹出窗口不存在于同一活动页面中,或者仍未呈现。请发布有关弹出标记以及如何动态附加它的更多详细信息。 我尝试使用页面中已经存在的 id 调用单个弹出窗口。它给了我同样的错误。 data-role=popup 不是pop_up jsfiddle.net/Palestinian/y3L2X 谢谢。它正在工作! @Prabakaran,请让 Omar 正式提交他的答案,并将其标记为已接受。这样,愿意提供帮助的人就会知道您找到了问题的解决方案。 【参考方案1】:

您在data-role 属性中使用了pop_up 而不是popup

<ul class="results" id="results" data-role="popup" data-transition="slidedown">
  <!-- item -->
</ul>

【讨论】:

以上是关于Jquery 移动弹出窗口未使用 requireJS 和backboneJS 触发的主要内容,如果未能解决你的问题,请参考以下文章

iscrollview 和 jquery 移动弹出窗口底部内容隐藏

不阻止 UI 的 jQuery 移动弹出窗口

ajax 返回后未初始化其他 jQuery 弹出窗口

当设备的(android)键盘处于活动状态时,jquery 移动弹出窗口小部件不会移动

jQuery 移动弹出窗口维度

需要确定在 JQuery 移动弹出窗口中单击的按钮并据此执行操作