在ajax加载的内容和动态ID上单击事件

时间:2017-03-09 09:39:17

标签: javascript jquery ajax click

我使用ajax加载内容。需要调用ajax加载的内容。我也试过一些代码,但没有运气。

jQuery(document).ready(function(){
        var itemId = '<?php echo $_item->getId(); ?>';

         jQuery("#cart-sidebar").on("click", '.increment_qty_'+itemId, function(event) {
            console.log("work");
        });

        jQuery("#cart-sidebar").on("click", '.increment_qty_<?php echo $_item->getId(); ?>', function(event) {
            console.log("work");
        });
});

3 个答案:

答案 0 :(得分:0)

尝试将事件绑定到文档,这可以确保无论何时在DOM中找到元素,都可以触发

jQuery(document).ready(function(){
        var itemId = '<?php echo $_item->getId(); ?>';

          jQuery(document).on("#cart-sidebar","click", '.increment_qty_'+itemId, function(event) {
            console.log("work");
        });

        jQuery(document).on("#cart-sidebar","click", '.increment_qty_<?php echo $_item->getId(); ?>', function(event) {
            console.log("work");
        });
});

答案 1 :(得分:0)

将事件处理程序附加到Ajax加载的内容有两种方法。

  1. 将事件附加到ajax请求的完成回调。 (参考:jQuery Ajax

    $.ajax({
         url: "xyz.php",
    })
    .done(function( content ) {
        $("#cart-sidebar").on("click", '.increment_qty_'+itemId, function(event) {
               console.log("work");
         });
    });
    
  2. 使用Event Delegate。这将允许您将事件监听器附加到元素,即使将来

答案 2 :(得分:0)

就像这样:

jQuery(document).ready(function(){
        var itemId = '<?php echo $_item->getId(); ?>';

         jQuery(document).on("click", '.increment_qty_'+itemId, function(event) {
            console.log("work");
        });


});
相关问题