gpt4 book ai didi

javascript - jQuery delegate() 不适用于 $(this)

转载 作者:行者123 更新时间:2023-11-28 12:47:20 28 4
gpt4 key购买 nike

我目前正在编写一些 jQuery,当单击由 js 生成的元素时,它将激活 SlideDown()。

这是我的功能:

$('.radiowrap').delegate("span[title='yes']", "click", function() { 
$('.radiowrap').next('.secondq:first').slideDown('medium');
});

这工作正常,但前提是我指定元素(如上所示),从而激活每个匹配元素。如果我像这样使用 $(this) :

$('.radiowrap').delegate("span[title='yes']", "click", function() { 
$(this).next('.secondq:first').slideDown('medium');
});

代码不起作用...有人有解决方案吗?这是我的 HTML 片段:

<div class="option radio">
<h2 class="block">Do you have a hot water tank?</h2>
<div class="radiowrap">
<div class="radiocont">
<label>Yes</label>
<input type="radio" class="styled" value="yes" name="watertank" />
</div>
<div class="radiocont">
<label>No</label>
<input type="radio" class="styled" value="no" name="watertank" />
</div>
</div>
<div class="secondq" style="display:none;">
<h2>What type of water tank is it?</h2>
<div class="radiowrap">
<div class="radiocont">
<label>Steel</label>
<input type="radio" class="styled" value="steel" name="watertanktype" />
</div>
<div class="radiocont">
<label>Fibreglass</label>
<input type="radio" class="styled" value="Fibreglass" name="watertanktype" />
</div>
</div>
<h2 align="left">How much insulation does it have?</h2>
<input type="text" align="right" name="bonus" class="value" disabled="disabled" />
<div class="slidewrap">
<div class="sliderMm slider"></div>
</div>
</div>
</div>

最佳答案

使用$(this).closest(".radiowrap")相反。

.delegate().live()尝试模仿.bind()尽可能接近;因此,在事件处理程序内部,this指向.radiowrap span[title='yes']被点击,就像您已绑定(bind)到 <span /> 一样直接。

使用.closest(".radiowrap")会找到祖先.radiowrap点击的<span /> ,从那里您可以像以前一样继续。

关于javascript - jQuery delegate() 不适用于 $(this),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6230129/

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