这可能会推动jquery的极限。
我希望触发live()事件。但我只想使用one()事件让它被触发一次。
目前我有代码打击。如何将此限制为仅被调用一次。
$(".sub-content").live('click', function() {
var id = this.id;
$.get("InfoRetrieve", { theid:id }, function(data) { addContent(data, id) } );
});
答案 0 :(得分:1)
有几种方法可以做到这一点。首先,您可以使用标记:
<div class="sub-content not-loaded">...</div>
使用:
$("div.sub-content.not-loaded").live("click", function() {
$(this).removeClass("not-loaded");
...
});
显然你也可以用另一种方式做到这一点(添加一个类来标记它已被加载)。我不是100%以上将使用live()
正确处理,在这种情况下:
$("div.sub-content.not-loaded").live("click", function() {
if ($(this).hasClass("not-loaded")) {
$(this).removeClass("not-loaded");
...
}
});
会奏效。
或者你可以取消绑定事件。
$("div.sub-content").click(load_content);
function load_content() {
$(this).unbind("click", load_content);
...
}
我并非100%确定这会与live()
一起使用(因为live()
可能会重新绑定它)。
答案 1 :(得分:0)
您可以使用die方法:
$(".sub-content").live('click', function() {
$(this).die('click');
var id = this.id;
$.get("InfoRetrieve", { theid:id }, function(data) { addContent(data, id) } );
});
我从未测试过它。