簡體   English   中英

jQuery腳本只能運行一次

[英]jQuery script works only once

我沒什么問題,腳本只能工作一次,之后我需要刷新頁面以刪除喜歡的文章(腳本就是針對此)。

$("a.fav_no").on('click', function () {
            var id = $(this).attr("id");
            $(this).load("{$homepage}/user_action.php?action=fav&id="+ id +"").addClass("fav_yes");
        });

$("a.fav_yes").on('click', function () {
            var id = $(this).attr("id");
            $(this).load("{$homepage}/user_action.php?action=remove_fav&id="+ id +"").removeClass("fav_yes");
        });

在控制台中,單擊多次(因此計算在內)后,單擊時會得到文章(div)的ID,但它沒有任何作用。 因此,我現在可以只收藏,要從收藏中刪除,我需要刷新,然后再次單擊鏈接從收藏中刪除。

謝謝!

如果要替換負責捕獲事件的html,則應再次初始化那些事件捕獲器。

像這樣:

initEvents() {
     $("a.fav_no").on('click', function () {
        var id = $(this).attr("id");
        $(this).load("{$homepage}/user_action.php?action=fav&id="+ id +"").addClass("fav_yes");
    });

     $("a.fav_yes").on('click', function () {
        var id = $(this).attr("id");
        $(this).load("{$homepage}/user_action.php?action=remove_fav&id="+ id +"").removeClass("fav_yes");
    });

}

那么您會在頁面加載時調用initEvents,然后在替換html時調用initEvents。

如果使用.on()重載,則需要3個args並在文檔上調用。 然后,事件將隨着UI元素的來來去去。 無需每次都重新添加它們。

$(document).on(“ click”,“ a.offsite”,function(){.....

請參閱此處的.on()描述。 http://api.jquery.com/live/

暫無
暫無

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

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