我有以下功能,它可以获取超出默认情况下显示的20个以上的注释
$('.more_comments_link').live('click', function() {
$(".more_comments_link").text("Fetching More Comments ...");
var ajaxOpts = {
type: "get",
url: "ajax_getcomments.php",
dataType: 'json',
data: "&itemid=<? echo $id; ?>&type=1&owner=<? echo $event["data"]["e_creator"]; ?>&more=1",
success: function(data) {
$('.discussion-more').after(data);
$(".discussion-more").hide();
}
};
$.ajax(ajaxOpts);
return false;
});
Run Code Online (Sandbox Code Playgroud)
它的工作原理,唯一的问题是,用户可以非常快速地点击按钮3次,并且它会向ajax_getcomments.php发送3个请求,每次都获得相同的结果集.
我尝试添加
$(".more_comments_link").unbind('click');
Run Code Online (Sandbox Code Playgroud)
但它没有做任何事情.
初始结果集也使用jquery获取,因此我正在使用 .live(click'
不确定它是否与它不起作用有关.
我创建了一个jQuery内容切换器.一般来说,它工作正常,但它有一个问题.如果多次单击侧面的链接,有时会显示多条内容.
问题最有可能出现在click事件中.这是代码:
$('#tab-list li a').click(
function() {
var targetTab = $(this).attr('href');
if ($(targetTab).is(':hidden')) {
$('#tab-list li').removeClass('selected');
var targetTabLink = $(this).parents('li').eq(0);
$(targetTabLink).addClass('selected');
$('.tab:visible').fadeOut('slow',
function() {
$(targetTab).fadeIn('slow');
}
);
}
return false;
}
);
Run Code Online (Sandbox Code Playgroud)
我已经尝试为转换添加锁定,以便在转换发生时忽略进一步的点击,但无济于事.我还尝试使用以下内容防止在某些内容已经动画时触发转换:
if ($(':animated')) {
// Don't do anything
}
else {
// Do transition
}
Run Code Online (Sandbox Code Playgroud)
但它似乎总是认为事物是动画的.有什么想法可以防止多次触发动画?