我在使用jquery slidetoggle函数获取动态添加的元素以进行切换时遇到问题。此外,由于遗留系统要求,我使用的是jquery 1.2.6。
此外,元素切换,但似乎切换发生在页面上元素数量的次数。
这就是我所拥有的:
.toggleMe {
display:none;}
.toggle {
cursor:pointer;}
$(document).ready(function() {
$(".toggle").click(function() {
$(this).parents(".reportcontainer").children('.toggleMe').slideToggle('fast');
return false;
});
});
<div class="reportcontainer">
<div class="rbanner toggle">
<div class="rtitle"><a href="#" class="toggle">CLICK HERE TO TOGGLE</a></div>
<div class="rexpand toggle expand"></div>
</div>
<div class="toggleMe"> HIDDEN / TOGGLED CONTENT </div>
</div>
我很感激任何人都能给予的帮助。
谢谢! 戴夫
编辑***我想出了我的问题 - 基本上每当用户将元素添加到页面时,它也会添加jquery函数,因此函数执行的次数很多次都在页面上。
感谢你的所有建议。
答案 0 :(得分:0)
理想情况下你会使用.live,但我不确定jquery 1.2是否拥有它。您可以做的另一件事是在添加新元素后再次运行绑定操作。当您在document.ready中执行此操作时,只有DOM中已有的元素才会绑定到事件,因此在添加项目后也会执行相同的操作。 (您可能需要检查是否存在双重绑定或其他内容)。如果出现问题,您可以在新项目中添加额外的课程(比如'pendingbind'),然后再做一个
$(".pendingbind").click(...)<br>
$(".pendingbind").removeClass("pendingbind")
类似的东西
答案 1 :(得分:0)
你的代码似乎工作正常。
但如果你复制粘贴它“按原样”,那么你缺少样式和脚本标签
<style>
.toggleMe {
display:none;}
.toggle {
cursor:pointer;}
</style>
<script>
$(document).ready(function() {
$(".toggle").click(function() {
$(this).parents(".reportcontainer").children('.toggleMe').slideToggle('fast');
return false;
});
});
</script>
最诚挚的问候, 最大