php - AJAX 过滤器操作 DOM 后,单击事件不会触发

标签 php jquery ajax wordpress woocommerce

我正在开发一个电子商务网站,该网站具有 AJAX 过滤器,可以根据每个产品属性操作 dom。

我正在编写另一个 AJAX 调用,以便在点击时提取每个产品的更多产品属性。<​​/p>

Here is the link to the dev site

这是我的 AJAX 调用

$('.each-product').on('click', function (e) {

    /** Prevent Default Behaviour */
    e.preventDefault();

    /** Get Post ID */
    var post_id = $(this).attr('id');
    var response_class = '.' + post_id + '-ajax-response';


    /** Ajax Call */
    jQuery.ajax({
        type: 'POST',
        url: ajaxurl,
        data: { action: 'product_extra_info', id: post_id },
        beforeSend: function () {
            $(response_class).show().html("Loading...");
        },
        success: function (data) {
            $(response_class).show().html(data);
            //alert(data);
        }

    });
    return false;
});

最佳答案

参见.on事件代表团。使用 click 您无法绑定(bind)到动态添加到 DOM 的内容。将代码切换为使用 on 如下所示:

$('.products').on('click', '.each-product', function (e) {

    /** Prevent Default Behaviour */
    e.preventDefault();

    /** Get Post ID */
    var post_id = $(this).attr('id');
    var response_class = '.' + post_id + '-ajax-response';


    /** Ajax Call */
    jQuery.ajax({
        type: 'POST',
        url: ajaxurl,
        data: { action: 'product_extra_info', id: post_id },
        beforeSend: function () {
            $(response_class).show().html("Loading...");
        },
        success: function (data) {
            $(response_class).show().html(data);
            //alert(data);
        }

    });
    return false;
});

关于php - AJAX 过滤器操作 DOM 后,单击事件不会触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28006402/

相关文章:

jquery - 可点击的下拉菜单

javascript - jquery 冲突 - 如何使用 jQuery.noConflict();

javascript - 使用 javascript 附加文章和部分

Javascript,无法减去值

PHP Laravel 检查数组是否为空

php - 链接到 CSS 样式表

jquery - 在菜单中添加灯箱等背景

javascript - 在将图像保存到文件夹之前将图像输出到浏览器

php - Laravel 没有创建没有错误的记录

php - 从 PHP 中的 foreach 循环返回不同的值?