这适用于所有其他浏览器,但在Firefox中,我需要点击两次“显示更多评论”链接,以便点击我的点击事件。有任何想法吗?
$moreReviewsWrapper.toggle(function() {
$(this).on('click', function(e) {
e.preventDefault();
var moreReviewEndpoint = $(this).data().more;
if(moreReviewEndpoint) {
$.ajax({
type: 'GET',
dataType: 'html',
contentType: 'text/html; charset=utf-8',
url: moreReviewEndpoint,
beforeSend: function() {
$moreReviewsLink.text('Loading more reviews ...');
},
success: success,
error: function(){
$moreReviewsLink.prop('hidden', false);
$moreReviewsLink.text(originalText);
$commonError.show();
}
});
}
});
}, function() { $(this).off(); });
答案 0 :(得分:0)
你的jQuery结构对我来说有点奇怪。 toggle()
是一个show / hide函数,第一个参数是duration参数。您正在向它传递一个创建事件处理程序的函数。我的猜测是jQuery最终运行该函数来评估它的数字(用作持续时间),然后设置你的事件处理程序。
我不确定toggle()
应该在这里做什么,但将您的事件监听器移到toggle()
之外会解决您的问题。