为什么我的绑定事件没有应用于新创建的元素?

发布于 2024-12-03 19:47:39 字数 481 浏览 0 评论 0原文

我有一个点击函数,它将图像添加到具有“selectedimage”类的 div 中。我正在尝试创建另一个引用“selectedimage”的点击函数,但是,它不会启动。这是因为第一次加载 DOM 时它不存在吗?谢谢。

$(".articlethumb").bind('click', function() {
var currentid = $(this).attr("id");
var medium = $(this).find(".thumb-medium").text();
var mediumimage = "<img id='" + currentid + "' class='selectedimage' src='" + medium + "' />";
$("#mainimage").html(mediumimage);
});

$(".selectedimage").bind('click', function() {
alert("test");
});

I'm have a click function which adds an image to a div with a class of "selectedimage". I'm trying to create another click function which references "selectedimage", however, it will not initiate. Is this because it didn't exist when the DOM was first loaded? Thanks.

$(".articlethumb").bind('click', function() {
var currentid = $(this).attr("id");
var medium = $(this).find(".thumb-medium").text();
var mediumimage = "<img id='" + currentid + "' class='selectedimage' src='" + medium + "' />";
$("#mainimage").html(mediumimage);
});

$(".selectedimage").bind('click', function() {
alert("test");
});

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

书间行客 2024-12-10 19:47:40

使用 .live

$('.articlethumb').live('click',function(){
    your code here
})

正如您怀疑的那样,这与事件绑定时元素不在 dom 中有关,live 修复了这个问题。

Use .live.

$('.articlethumb').live('click',function(){
    your code here
})

As you suspected it has to do with the element not being in the dom when the event is bound, and live fixes this.

清风不识月 2024-12-10 19:47:40

不要使用“bind”,而使用“live”。相同的语法(除了 live 之外)会将事件处理程序应用于任何现有的匹配元素以及任何未来(尚未存在)的匹配元素。

Instead of using "bind", use "live". Same syntax, except live will apply the event handlers to any existing matching elements, and any future (as-yet non-existant) matching elements.

预谋 2024-12-10 19:47:40

.bind 仅影响 DOM 中已有的元素。

要将事件“绑定”到所有现有和未来的元素,请使用 .live

$('selector').live(click, function() {

});

.bind only affects elements already in the DOM.

To "bind" an event to all existing and future elements, use .live:

$('selector').live(click, function() {

});
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文