我的(文档).ready函数中包含以下内容:
replace_fav_url();
和jQuery函数:
function replace_fav_url(){
$j('a.fav').click(function(e) {
$j.post($j(this).attr('href'));
e.preventDefault();
});
}
除了函数似乎被调用两次之外,一切都运行良好吗? 1单击两个函数调用?不确定这里发生了什么?
编辑:
完整的application.js文件:
var $j = jQuery.noConflict();
//Append javascritp header requests
$j.ajaxSetup({
'beforeSend': function(xhr) {xhr.setRequestHeader("Accept", "text/javascript")}
});
$j(document).ready(function() {
$j(document).ajaxSend(function(event, request, settings) {
if (settings.type == 'GET') return;
if (typeof(AUTH_TOKEN) == "undefined") return;
settings.data = settings.data || "";
settings.data += (settings.data ? "&" : "") + "authenticity_token=" + encodeURIComponent(AUTH_TOKEN);
});
replace_vote_urls();
replace_fav_url();
});
function replace_vote_urls(){
$j('a.vote').click(function(e) {
$j.post($j(this).attr('href'));
e.preventDefault();
});
}
function replace_fav_url(){
$j('a.fav').click(function(e) {
$j.post($j(this).attr('href'));
e.preventDefault();
});
}
答案 0 :(得分:3)
我只是猜测这是问题所在,但是如果您多次调用replace_fav_url()
函数,它会将额外的点击事件绑定到a.fav
。每次打电话都会继续这样做。
如果您以任何方式更改a.fav
元素的数量,最好使用delegate()
或live()
绑定点击事件。