好的,我使用livequery()将函数绑定到类'ajaxLink'的所有链接的click事件。该功能完美地发射......一次。在点击后第一次成功调用ajax之后,后续点击不会触发ajax,这意味着(我猜)他们不再被livequery()代码绑定了。
我看到其他有类似问题的人将其代码移到了ready()函数之外,所以我尝试了这一点,但无效(相同的结果)。
$('a.ajaxLink').livequery('click', function(e) {
e.preventDefault();
var target = $(this).attr('href') + '&ajax=y';
var x = $(this).html();
$.ajax({
type: 'POST',
url: target,
//data: str,
success: function(msg) {
$('#mainPanel').slideUp(500, function() {
$(this).html(msg).slideDown(1000);
});
}
});
})
如果您需要更多详细信息,请与我们联系。预先感谢您的帮助!这个网站很棒。
答案 0 :(得分:0)
.livequery()
存在问题,具体取决于哪个版本和一些特殊的DOM案例。但是,你可以忽略这个问题...因为你正在做一些有关事件的事情,你可以在这里使用内置的.live()
(在jQuery 1.3+中可用),如下所示:
$('a.ajaxLink').live('click', function(e) {
e.preventDefault();
$.ajax({
type: 'POST',
url: $(this).attr('href') + '&ajax=y',
//data: str,
success: function(msg) {
$('#mainPanel').slideUp(500, function() {
$(this).html(msg).slideDown(1000);
});
}
});
});