Javascript 这个建筑能一直使用吗

Javascript 这个建筑能一直使用吗,javascript,jquery,function,html,Javascript,Jquery,Function,Html,在我的网站上,它将有产品磁贴,每个磁贴中都有一个按钮,磁贴将根据可用性通过ajax调用加载,我使用下面的函数初始化div的函数。这里的“add\uUID”是按钮的id $('#add_'+uid).bind("click",addFunction); function addFunction(){ ... } 我发现上面的代码只能在页面加载时工作, 我可以像这样使用它吗?这是ajax类型场景的解决方案吗 $('#add_'+uid).click(addFunction); 如果这样做不起作

在我的网站上,它将有产品磁贴,每个磁贴中都有一个按钮,磁贴将根据可用性通过ajax调用加载,我使用下面的函数初始化div的函数。这里的“add\uUID”是按钮的id

$('#add_'+uid).bind("click",addFunction);
function addFunction(){

...
}
我发现上面的代码只能在页面加载时工作, 我可以像这样使用它吗?这是ajax类型场景的解决方案吗

$('#add_'+uid).click(addFunction);

如果这样做不起作用,那么可以为父元素调用

上的jQuery
方法。
$('#add_'+uid).click(addFunction);
只要父元素存在,它就会捕获给定选择器的所有事件

.on(事件[,选择器][,数据],处理程序(事件对象))

选择器:
用于筛选子代的选择器字符串 触发事件的选定元素

您还可以将侦听器绑定到id为
add\uu
的所有元素:

$('body').on('click', '[id^=add_]', function(){
  alert($(this).attr('id'));
});

演示:

可以为父元素调用
方法上的jQuery

只要父元素存在,它就会捕获给定选择器的所有事件

.on(事件[,选择器][,数据],处理程序(事件对象))

选择器:
用于筛选子代的选择器字符串 触发事件的选定元素

您还可以将侦听器绑定到id为
add\uu
的所有元素:

$('body').on('click', '[id^=add_]', function(){
  alert($(this).attr('id'));
});
演示:

使用

$(document).on("click", '#add_'+uid, addFunction);
function addFunction(){
    ...
}
除了
文档
之外,您还可以在页面上使用静态容器。

使用

$(document).on("click", '#add_'+uid, addFunction);
function addFunction(){
    ...
}

除了
文档
之外,您还可以在页面上使用静态容器。

我不能100%确定您要的是什么。当元素存在时,绑定事件处理程序总是“起作用”。是的,当您在Ajax响应回调中添加新元素,然后调用
$('#add'+uid)时,单击(addFunction)
,它将“起作用”。阅读有关事件委派的内容,我建议使用一个类istead将事件分别绑定到每个id。如果
“\add_'+uid
不在DOM中,那么您需要使用
on
函数或
delegate
jQuery方法。感谢您的支持,@Felix Kling我只使用这一个$('add_'+uid)。单击(添加功能);我发现它是有效的…希望它能适用于所有的瓷砖…如箭头所示,我可能在一个页面上有100个瓷砖,我不是100%确定你想要什么。当元素存在时,绑定事件处理程序总是“起作用”。是的,当您在Ajax响应回调中添加新元素,然后调用
$('#add'+uid)时,单击(addFunction)
,它将“起作用”。阅读有关事件委派的内容,我建议使用一个类istead将事件分别绑定到每个id。如果
“\add_'+uid
不在DOM中,那么您需要使用
on
函数或
delegate
jQuery方法。感谢您的支持,@Felix Kling我只使用这一个$('add_'+uid)。单击(添加功能);并且发现它有效…希望它能适用于所有互动程序…如箭头所示,我可能在一个页面上有100个互动程序,您应该澄清您使用的是事件委派,虽然OP不是。@jantimon您的解决方案是正确的,但当我们根据单击的位置执行相同的功能时,它会工作,例如,我们只需放置警报,它就会工作……但我有动态数据要获取,如图像、该磁贴的url、产品id、产品名称、产品描述、prd idf_id等,在这种情况下,我必须动态地传递它们……您可以在事件处理程序中使用
this
,查看我的更新答案。它总是会提醒被点击元素的Id。你应该说明你正在使用事件委派,而OP不是。@jantimon你的解决方案是正确的,但当我们根据点击的位置执行相同的功能时,它会起作用。例如,我们只需发出提醒,它就会起作用……但我有动态数据要获取,如图片、该磁贴的url、,产品id、产品名称、产品描述、prd idf_id等,在这种情况下,我必须动态传递它们…您可以在事件处理程序中使用
查看我的更新答案。它总是会提醒被点击元素的Id。是的,这是另一种解决方案,但我需要确保即使当用户向下滚动到页面时,我的磁贴通过ajax调用动态加载时,它也能工作……是的,这是另一种解决方案,但我需要确保它即使在我的磁贴被加载时也能工作当用户向下滚动到页面时,由ajax调用动态加载。。。。