-3

我的页面上有很多 div 类的prodct-item-info. 我在 jQuery 中有一些代码,只要用户单击具有此类的元素,就会触发一些代码。

问题是,页面正在使用这个类动态加载更多元素。发生这种情况时,当我按下新加载元素的此类时,什么也没有发生。但是如果我点击动态加载之前创建的元素,它仍然可以工作。

比如x是我第一次加载页面时加载的,y是我动态添加的:

该页面有这个:

x x x x x x x x x x x x x x x x x x

当我点击这些时,它工作正常。

现在我加载:

y y y y y y y y 

当我点击这些时,它什么也没做。

知道如何解决吗?

提前致谢!

编辑

这是我的代码:

$('.product-item-info').on("click",function() {
        var pid = $(this).find('input').val();
        $.get('product_info.php',{pid:pid},function(data){
            $('#product-lb').html(data).append('<span class="x"><span>X</span></span>');
            $('.x').click(function() {
                $('#dimmer').click();
            });
            $('#dimmer').css({width:$('html').width(),height:$('html').height()});
            $('#dimmer').show();
             center_div($('#product-lb'));
        });
    });
4

2 回答 2

2

你如何定位你的元素?就像是:

$('.someClass').click(function(){
    alert('hi');
});

如果是这样,那么只有当前渲染的元素才会有事件。几个选项。

一,尝试使用 jQuery 定位您的元素on()

$("#someID").on("click", "a.someClass", function() {
    alert('Do Something);
});

或者,在添加元素后,直接将事件应用到它。

于 2013-09-15T20:24:35.483 回答
2

您需要使用on附加/委托事件来动态添加内容。我body在下面的例子中使用过。您也可以将其替换$(document)为。

$('body').on('click', '.prodct-item-info', function(){
    //put your code here
});

如果prodct-item-info有父级,则只要单击父级,就应该用 orso 替换,body它将找到其中的所有子级并运行代码。#parentID.parentClassprodct-item-info

于 2013-09-15T20:29:15.430 回答