一千萬個為什麽

搜索

Jquery持久性css選擇器相當於'.live()'

所以今天我剛剛遇到了'live()'函數,它將任何未來和過去的元素綁定到您選擇的任何事件,例如'onclick'。

現在我每次通過ajax加載一個新按鈕時都需要設置如下按鈕......

$('a.btn.plus').button({icons:{primary:'ui-icon-plusthick'}});
$('a.btn.pencil').button({icons:{primary:'ui-icon ui-icon-pencil'}});
$('a.btn.bigx').button({icons:{primary:'ui-icon ui-icon-closethick'}});

所以,每次我使用ajax添加一個新按鈕,而不是調用這些行,是否有類似的方式告訴JQuery設置我的按鈕ANYTIME我添加新的按鈕?

謝謝你的幫助!

最佳答案

嗯,不是真的。但是只要Ajax調用成功,就會觸發函數 .ajaxSuccess()。所以你可以這樣做:

$('body').ajaxSuccess(function() {
    $('a.btn.plus').button({icons:{primary:'ui-icon-plusthick'}});
    $('a.btn.pencil').button({icons:{primary:'ui-icon ui-icon-pencil'}});
    $('a.btn.bigx').button({icons:{primary:'ui-icon ui-icon-closethick'}});
});

但這將在任何鏈接上運行,而不僅僅是在新的鏈接上。但是如果你一次追加它們(即不是一次多個 a.btn.plus ),你可以使用:last 選擇器( a。 btn.plus:last </代碼>)。


您還可以通過回調函數創建一個函數:

function links() {
   $('a.btn.plus').button({icons:{primary:'ui-icon-plusthick'}});
   $('a.btn.pencil').button({icons:{primary:'ui-icon ui-icon-pencil'}});
   $('a.btn.bigx').button({icons:{primary:'ui-icon ui-icon-closethick'}});
}

並在Ajax調用中:

$.ajax({
   //...
   success: function(msg){
      links();
   }
});

這樣,您可以將父元素傳遞給函數,以便僅在此元素內找到鏈接(因此代碼僅適用於新鏈接)。


最後一個選項是生成一個自定義事件,但最終這類似於在你的情況下進行函數調用,所以你獲得的不多。

轉載註明原文: Jquery持久性css選擇器相當於'.live()'