gpt4 book ai didi

jQuery:live() 和 delegate()

转载 作者:行者123 更新时间:2023-11-30 23:53:53 25 4
gpt4 key购买 nike

我将单击事件绑定(bind)到 div 元素,该元素是在单击按钮后创建的。我正在使用 .live() 并且这是有效的。我听说我不应该使用 .live,而应该使用 .delegate()。所以我尝试过,但它不起作用,但 .live 可以工作。

我的工作 jQuery:

$(".myDiv").live("click",function () {
var Pos = $(this).offset();
$("#Container").css("left", Pos.left).css("top", Pos.top);
});

不工作的 jQuery:

$(".myDiv").delegate("div","click",function () {
var Pos = $(this).offset();
$("#Container").css("left", Pos.left).css("top", Pos.top);
});

我的 div 的 HTML

<div class="myDiv"></div>

谁能告诉我,为什么 delegate 不为我工作?

最佳答案

从 1.7 开始,.live() 已被弃用,.delegate() 已被 .on() 取代。

$("body").on("click","div.myDiv",function () { 
var Pos = $(this).offset();
$("#Container").css("left", Pos.left).css("top", Pos.top);
});

.on() 现在是 super 绑定(bind)器;)

尝试绑定(bind)到最接近目标的东西,该目标肯定会包含它,最好是带有 ID 的东西:

<div id="mainContent">
<div class="myDiv"></div><!-- Dynamically created div -->
</div>

这里的一个很好的目标是#mainContent

$("#mainContent").on("click","div.myDiv",function () { 
var Pos = $(this).offset();
$("#Container").css("left", Pos.left).css("top", Pos.top);
});

关于jQuery:live() 和 delegate(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8806348/

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