gpt4 book ai didi

javascript - 为什么 jquery 中的点击事件不适用于我的新元素?

转载 作者:太空宇宙 更新时间:2023-11-03 21:54:40 24 4
gpt4 key购买 nike

我有左、中、右三个类的 div,我想交换它们的位置并在它们转到新位置时应用新类。但由于某种原因它不起作用这是我的脚本:

$(function() {
$(".left").css("left","50px");
$(".center").css("left","300px");
$(".center").css("width","300px");
$(".center").css("height","300px");
$(".center").css("top","25px");
$(".right").css("left","650px");
$(".right").click(function(){
$(".left").animate({
left: '650px'
}, 1000, function() {
});
$(".center").animate({
left: '50px',
width: '200px',
top: '75px',
height: '200px'
}, 1000, function() {
});
$(".right").animate({
left: '300px',
width: '300px',
height: '300px',
top: '25px'
}, 1000, function() {
});
$(".bule").removeClass("left right center");
$(".second").addClass("left");
$(".third").addClass("center");
$(".first").addClass("right");
$(".bule").removeClass("first second third");
$(".left").addClass("first");
$(".center").addClass("second");
$(".right").addClass("third");
});
});

Here是一个工作示例。

最佳答案

当您使用 jQuery 选择器选择元素时 $('...') - 对选择进行评估并对​​这些元素采取以下操作。如果稍后,您删除了一个类或更改了所选元素的 ID,则这些操作已经执行 - 因此它们会保留下来。同样,它们不会自动从其他选择器继承操作(因为它们在做出选择时没有那个类/ID)。

如果你想一次性绑定(bind)事件,并在添加新元素或更改类时让它们起作用,你需要使用稍微不同的事件语法:

$('body').on('click', '.right', function() {

});

注意选择器现在是主体元素(因为运行时主体元素将始终存在)。你在这里告诉 jQuery 的是绑定(bind)一个 click事件到 <body>元素,并且,当 <body> 的 child 时单击,根据表达式计算元素 .right .如果该表达式匹配,则调用我的函数。

此方法利用了 javascript 事件传播,其中事件一直冒泡回到其最高祖先。这意味着单击 div 内的链接将触发链接、div 和正文的点击事件 - 按此顺序。

关于javascript - 为什么 jquery 中的点击事件不适用于我的新元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14773926/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com