簡體   English   中英

jquery-mobile事件順序,為什么setTimeout將$ this設置為undefined?

[英]jquery-mobile event order and why does setTimeout set $this to undefined?

stackUp()運行后,我需要延遲第二個函數crumble()的執行。

我曾嘗試與pagechange對這樣pagebeforeshow設置的事件順序:

$('div:jqmData(role="page")').bind( "pagechange", function( event, data) {
   stackUp(event, data);
});

$('div:jqmData(role="page")').live('pagebeforeshow', function(event, data){
     crumble(event, data, $(this) );
});

像這樣不起作用和setTimeout

$('div:jqmData(role="page")').live('pagebeforeshow', function(event, data){
     window.setTimeout(function (event, data, $(this)) {
       crumble(event, data, $(this) );
     },500);
});

使$(this) 未定義 ,因此這也無濟於事。

問題
完成堆疊后,如何確保崩潰
$(this)是否因為它是window.setTimeout()(而不是$(this).setTimeout)而變得不確定?
jQuery-mobile中正確的事件順序是什么?

太謝謝了! 求助。

您的setTimeout函數沒有任何意義。 那甚至不是有效的語法- $(this)不能是函數參數名稱!

您正在尋找的是:

$('div:jqmData(role="page")').live('pagebeforeshow', function(event, data) {
    var $this = $(this);
    window.setTimeout(function() {
        crumble(event, data, $this);
    }, 500);
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM