我有类似的东西,它是从jQuery .append(html)
<div class="pPost">
<p>id</p>
<div class="pPostIn">
<div class="link">
<a href="http://www.google.com"></a>
</div>
<div class="id"></div>
<div class="txt"></div>
</div>
然后是一个像这样的jQuery函数:
编辑:3
$(function () {
$(".link").live({
mouseenter: function () {
$(this).css("background-position", "0 0"); //this works
$(".pPost").die();
},
mouseleave: function () {
$(this).css("background-position", ""); //this works
$(".pPost").live("click", ajaxCall);
}
});
return false;
});
这可以按预期工作,但我想解决的问题是如何将.link
锚点可执行文件作为.pPost
实时函数“获得第一名”?我尝试.unbind()
/ .undelegate()
.pPost
,但我没有成功:
编辑:3
var ajaxLoad = function () {
$(".pPost").live("click", function () {
$.ajax({
type: "POST",
url: "rucno/php/archive_page_helper.php",
data: idData,
cache: false,
success: function (html) {
$(pPost).append(html).hide().slideDown(400, function () {
$(".link").hide().delay(1000).fadeIn(1000);
});
}
});
});
return false;
};
再次编辑,但仍然相同,它不会工作:)
答案 0 :(得分:0)
使用live
绑定事件时,请使用die
取消绑定。
您不能仅通过再次说出.bind()
来重新绑定事件。
查看此问题以暂时取消绑定事件: jquery temporary unbinding events
修改强>
var ajaxLoad = function () {
$.ajax({
//blablabla
});
return false;
};
修改强> 重新绑定ajax加载。
// Rebind like this
$(".pPost").live("click", ajaxLoad);
修改强>
由于链接位于.pPost
内,当重新加载链接时,链接会松散绑定并且也应该被重新绑定。
// Rebind links
$('a').click(fn);
$('.pPost').load('blabla.html',function() {
$('.pPost a').click(fn);
});
修改强> 嵌入ajax调用时要小心:
var ajaxLoad = function () {
$.ajax({
type: "POST",
url: "blabla.php",
data: idData,
cache: false,
success: function (html) {
$(pPost).append(html).hide().slideDown(400, function () {
$(".link").hide().delay(1000).fadeIn(1000);
});
}
});
};
然后:
$(".pPost").live("click", ajaxCall);
答案 1 :(得分:0)
在帖子jQuery - How can I temporarily disable the onclick event listener after the event has been fired?
中解析为“RamboNo5”我只是要修改它,这就是它的工作原理
HTML
<div class="pPost">
<p>id</p>
<div class="pPostIn">
<div class="link">
<a href="http://www.google.com"></a>
</div>
<div class="id"></div>
<div class="txt"></div>
</div>
JS
$(function () {
var active= true;
$(function () {
$(".link").live({
mouseenter: function () {
active= false;
},
mouseleave: function () {
active= true;
}
});
//return false;
});
$(function () {
$(".pPost").live("click", function () {
if (!active) {
return;
}
$.ajax({
type: "POST",
url: "rucno/php/archive_page_helper.php",
data: idData,
cache: false,
success: function (html) {
$(pPost).append(html).hide().slideDown(400, function () {
$(".link").hide().delay(1000).fadeIn(1000);
});
}
});
return false;
});
});
});