Javascript 动态版本中的类不';行不通

Javascript 动态版本中的类不';行不通,javascript,jquery,addclass,Javascript,Jquery,Addclass,我有个问题 当我在静态版本中单击我的链接时: <a class="ajax-portfolio" href="page.html"><span class="moreText">+</span></a> 页面和javascript函数工作得非常好 但是,当我制作动态内容时: <script> $(function() { var url = "json1.json"; $.getJSON(u

我有个问题

当我在静态版本中单击我的链接时:

<a class="ajax-portfolio" href="page.html"><span class="moreText">+</span></a>

页面和javascript函数工作得非常好

但是,当我制作动态内容时:

<script>
    $(function() {
        var url = "json1.json";
        $.getJSON(url, function(json) {
            $.each(json.sommer, function(i, item) {

                $('<a class="ajax-portfolio" href="' + item.name + '"><span class="moreText">+</span></a>').appendTo('#betriebe');
            });
        });
    });
</script> 

$(函数(){
var url=“json1.json”;
$.getJSON(url,函数(json){
$.each(json.sommer,函数(i,项){
$('')。附于('#betriebe');
});
});
});
效果不正常

不能正常工作,因为我有一个新窗口。 在静态版本中,链接页面在“我的页面”的一部分中打开

问题一定是,该类在动态版本中不工作。 有人有办法吗? 请
提前谢谢

假设您正在使用:

$('.ajax-portfolio').click(function(e){
    // Do stuff
});
实际上,您需要这样一个委托事件处理程序:

$(document).on('click', '.ajax-portfolio', function(e){
    // Do stuff
});
它的工作原理是侦听向上冒泡的事件,然后应用jQuery选择器。这意味着元素只需要在事件发生时存在即可匹配<代码>文档是默认值,如果元素附近没有任何方便的内容

在您的情况下,您似乎有一个具有
id=“betriebe”
的祖先,因此,如果将其作为委托元素,代码将非常快:

$('#betriebe').on('click', '.ajax-portfolio', function(e){
    // Do stuff
});

注意:不要对委派事件使用
body
,因为样式设置会阻止它接收冒泡的鼠标事件!始终使用
文档
作为后备方案。

假设您正在使用:

$('.ajax-portfolio').click(function(e){
    // Do stuff
});
实际上,您需要这样一个委托事件处理程序:

$(document).on('click', '.ajax-portfolio', function(e){
    // Do stuff
});
它的工作原理是侦听向上冒泡的事件,然后应用jQuery选择器。这意味着元素只需要在事件发生时存在即可匹配<代码>文档是默认值,如果元素附近没有任何方便的内容

在您的情况下,您似乎有一个具有
id=“betriebe”
的祖先,因此,如果将其作为委托元素,代码将非常快:

$('#betriebe').on('click', '.ajax-portfolio', function(e){
    // Do stuff
});

注意:不要对委派事件使用
body
,因为样式设置会阻止它接收冒泡的鼠标事件!始终使用
文档
作为后备方案。

假设您正在使用:

$('.ajax-portfolio').click(function(e){
    // Do stuff
});
实际上,您需要这样一个委托事件处理程序:

$(document).on('click', '.ajax-portfolio', function(e){
    // Do stuff
});
它的工作原理是侦听向上冒泡的事件,然后应用jQuery选择器。这意味着元素只需要在事件发生时存在即可匹配<代码>文档是默认值,如果元素附近没有任何方便的内容

在您的情况下,您似乎有一个具有
id=“betriebe”
的祖先,因此,如果将其作为委托元素,代码将非常快:

$('#betriebe').on('click', '.ajax-portfolio', function(e){
    // Do stuff
});

注意:不要对委派事件使用
body
,因为样式设置会阻止它接收冒泡的鼠标事件!始终使用
文档
作为后备方案。

假设您正在使用:

$('.ajax-portfolio').click(function(e){
    // Do stuff
});
实际上,您需要这样一个委托事件处理程序:

$(document).on('click', '.ajax-portfolio', function(e){
    // Do stuff
});
它的工作原理是侦听向上冒泡的事件,然后应用jQuery选择器。这意味着元素只需要在事件发生时存在即可匹配<代码>文档是默认值,如果元素附近没有任何方便的内容

在您的情况下,您似乎有一个具有
id=“betriebe”
的祖先,因此,如果将其作为委托元素,代码将非常快:

$('#betriebe').on('click', '.ajax-portfolio', function(e){
    // Do stuff
});

注意:不要对委派事件使用
body
,因为样式设置会阻止它接收冒泡的鼠标事件!始终使用
文档
作为后备方案。

您很可能还有其他代码可以这样做

$('.ajax-portfolio').click(function(){...});

您需要将此更改为

$('#betriebe').on('click', '.ajax-portfolio', function(){...});

问题在于使用
$('.ajax公文包')。单击
可以将处理程序绑定到DOM中的现有元素(在脚本运行时)。稍后添加具有相同类的新元素时,代码尚未附加到该新元素


使用
$(“#betriebe”).on('click',“.ajax公文包”
允许您将事件处理委托给所有
.ajax公文包
元素的预先存在的祖先(因为它们位于其中)。

您很可能还有其他一些代码

$('.ajax-portfolio').click(function(){...});

您需要将此更改为

$('#betriebe').on('click', '.ajax-portfolio', function(){...});

问题是使用
$('.ajax公文包')。单击
可以将处理程序绑定到DOM中的现有元素(在脚本运行时)。稍后添加具有相同类的新元素时,代码尚未附加到该元素


使用
$(“#betriebe”).on('click',“.ajax公文包”
允许您将事件处理委托给所有
.ajax公文包
元素的预先存在的祖先(因为它们位于其中)。

您很可能还有其他一些代码

$('.ajax-portfolio').click(function(){...});

您需要将此更改为

$('#betriebe').on('click', '.ajax-portfolio', function(){...});

问题是使用
$('.ajax公文包')。单击
可以将处理程序绑定到DOM中的现有元素(在脚本运行时)。稍后添加具有相同类的新元素时,代码尚未附加到该元素


使用
$(“#betriebe”).on('click',“.ajax公文包”
允许您将事件处理委托给所有
.ajax公文包
元素的预先存在的祖先(因为它们位于其中)。

您很可能还有其他一些代码

$('.ajax-portfolio').click(function(){...});

您需要将此更改为

$('#betriebe').on('click', '.ajax-portfolio', function(){...});

问题是使用
$('.ajax公文包')。单击
可以将处理程序绑定到DOM中的现有元素(在脚本运行时)。稍后添加具有相同类的新元素时,代码尚未附加到该元素


使用
$(“#betriebe”).on('click',“.ajax公文包”
允许您将事件处理委托给所有
.ajax公文包
元素的预先存在的祖先(因为它们位于其中)。

您可以运行代码并通过inspect元素检查源代码。您可以看到html代码已正确创建了ant