2013-01-16 19 views
0

在jquery mobile中,當綁定到比文檔更低的元素時,swipeleft事件被觸發兩次,所以我必須將swipeleft事件綁定到由插件選擇的所有對象。 以下插件將由被初始化:如何將它用作jquery選擇器來綁定文檔級別的事件

$('#mylistview li').myPlugin(); 

$.fn.myPlugin = function(o){  

    return this.each(function(i, el){ 
     this.on("swipeleft", function (e) { 
      ... 
} 

該代碼被結合swipeleft事件到每個元件,但它必須做的是文檔級。如何使用這個作爲jQuery選擇器?上面的代碼給出了一個錯誤

$.fn.myPlugin = function(o){ 
     return this.each(function(i, el){ 
         //how to use "this" as a selector??? 
      $(document).on('swipeleft', this, function(event){ 
      ... 
    } 
+0

?換句話說,你是否取消了冒泡系統? –

+0

這個系統在這種情況下不起作用,試過event.stopPropagation()等等。什麼都行不通 – user1966829

+0

無論如何,我不明白你爲什麼需要傾聽所有的元素而不是頁面(或頁面)。 –

回答

0

你可以重寫你的函數中這樣說:「當綁定到文檔相比低的元素被觸發兩次」你冒泡事件

$.fn.myPlugin = function(o) { 
    var selector = this.selector; 
    return this.each(function(i, el) { 
     $(document).on('swipeleft', selector, function(event) { 
     // Code goes here 
     }); 
    }); 
} 
+0

this.selector正在返回像這樣的「#mentions-list li.slice(0,1)」的值,所以選擇器崩潰 – user1966829

+0

如果您在寫入時調用插件,並且使用選擇器# mylistview李,這不可能。 –

相關問題