【问题标题】:Pageinit and Ready Events IrregularitiesPageinit 和 Ready 事件异常
【发布时间】:2013-08-16 09:09:37
【问题描述】:

这是我面临的问题的小提琴链接with pageinit and ready events

通过小提琴链接,一切都可以使用 onLoad 和 onDOMready 进行。 “一切”的意思

  1. 主题列表已正确加载,单击时会弹出一个列出模块的弹出窗口
  2. 模块列表会在点击时发出警报

但在我的代码中试图在 pageinit 不起作用后将事件绑定到相应的 id

$('#home').on('pageinit', function() {
 $('#modules').on('vclick','li', function(e){
        e.stopImmediatePropagation();
        e.preventDefault();
       var module = $(this).attr("category");
       moduleClick(module);       
       });
});

监听 $(document).ready(function() {)} 不会弹出模块。

【问题讨论】:

    标签: javascript jquery listview jquery-mobile cordova


    【解决方案1】:

    试试

    $(window).load(function() {
        ...
    });
    

    document.addEventListener('deviceready', onDeviceReady, true);
    function onDeviceReady(){
        ...
    }
    

    【讨论】:

    • $(window).load 不会弹出模块并且事件监听器不会不绑定事件。
    • 像这样尝试哈克(简单添加代码): document.addEventListener('deviceready', onDeviceReady, true);函数 onDeviceReady(){ $('#home').trigger('pageinit'); }
    【解决方案2】:

    如果您想在页面加载后立即打开一个弹出窗口,最好在 pagecreate 中进行,因为 JQM 1.4 pageinit 已弃用,但由于某些链接问题,仅打开一个弹出窗口将不起作用,您需要添加一些超时时间

    在弹出窗口中放置一个带 href 的锚点并点击

    $(document).on("pagecreate", function(event) {
        setTimeout(function(){
           $("a#popupOpen").click();
        },200);
    
    });
    

    $(document).on("pagecreate", function(event) {
        setTimeout(function(){
           $( "#popup" ).panel( "open" );
        },200);
    
    });
    

    【讨论】:

      猜你喜欢
      • 2018-06-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多