【发布时间】:2012-01-12 21:37:40
【问题描述】:
我通过这样的模板将一些新的 HTML 加载到我的页面:
$.post("templates/single.html", function(data){
$("#feed").append(
data.replace( /{{title}}/ , "Title")
.replace( /{{subtitle}}/ , "Subtitle")
.replace( /{{text}}/ , val.fragment)
);
});
此请求执行了多次,因此返回的“数据”包含带有 class="togglethis" 的 div 标签。我想用 jQuery 添加一个事件监听器来监听那些被点击的类。
我自然会添加事件监听器,比如这个
$.post("templates/single.html", function(data){
$("#feed").append(/*skipped code here*/);
$(".content").hide();
$(".togglethis").click(function(){
$(this).siblings(".content").slideToggle();
});
});
就在 $("#feed).append()-part 之后,但随后触发的事件与加载模板的次数一样多。也就是说,如果我使用此模板加载 25 个项目,则旁边的“内容” “togglethis”会在停止之前来回切换 25 次。
我应该把我的事件处理程序放在哪里让它只触发一次?或者,我从一开始就想错了吗?
【问题讨论】:
标签: jquery events javascript-events