簡體   English   中英

單擊動態創建的按鈕jQuery

[英]Clicking dynamically created buttons jQuery

我有一個jQuery數據表,其中每一行都有一個添加到購物車按鈕。 如果執行搜索或單擊表中的其他頁面條目,該表將動態加載新的行和按鈕。 因此,我有兩種添加到購物車按鈕的類型-一種是動態創建的按鈕,另一種是原始按鈕:

動態創建的按鈕的Click事件:

$(document).on('click', 'button.btn.btn-primary.addtocart', function() {
    //add to cart
});

原始按鈕的Click事件:

$(".addtocart").click(function() {
    //add to cart
});

我遇到的問題是,如果單擊原始按鈕,則click事件將觸發兩次。 有誰知道策略或為此解決?

在按鈕單擊處理程序中使用event.stopImmediatePropagation()可阻止事件冒泡。

$(".addtocart").click(function (event) {
    //                          ^^^^^    Pass event object to the callback
    //add to cart

    event.stopImmediatePropagation();
});

編輯:

如果兩個處理程序都相同,我建議對動態和靜態元素僅使用委托的處理程序。

$(document).on('click', 'button.btn.btn-primary.addtocart', function () {
    // add to cart
});

這是一個簡單的解決方案。

只需在jQuery中使用on方法即可。

$(document).ready(function(){
    $("dynamically_created_element_selector").on("click", function()
    {
        //do whatever u want
    });
});

演示在這里-

 $(function(){ $('button').on('click',function(){ var r= $('<br/><button class="dynamic_button" type="button">Dynamic Button</button>'); $("body").append(r); }); $(document).on('click', 'button.dynamic_button', function () { alert("Dynamic Element Clicked !!"); }); }); 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script> <body> <button>Insert after</button> </body> 

暫無
暫無

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

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