jquery onclick函数未在rails链接到远程时启动
在页面的js文件中,在jquery onclick函数未在rails链接到远程时启动,jquery,ruby-on-rails,onclick,link-to-remote,Jquery,Ruby On Rails,Onclick,Link To Remote,在页面的js文件中,在$(document).ready(function(){})中我有 $(".school a").live("click", function (e){ e.preventDefault(); ....; jsFunc(param1, param2, param3); }); 现在,带有班级学校的div具有由rails链接到远程的标签,带有:url,:action,:before,:html 单击此链接时,它会执行与链接到远程有关的所有操作,但不知何故,d
$(document).ready(function(){})
中我有
$(".school a").live("click", function (e){
e.preventDefault();
....;
jsFunc(param1, param2, param3);
});
现在,带有班级学校的div具有由rails链接到远程的标签,带有:url
,:action
,:before
,:html
单击此链接时,它会执行与链接到远程有关的所有操作,但不知何故,document.ready中的onclick事件不会附加到它。为什么会发生这种情况?jsFunc所做的只是异步发布到一个url,我发现在链接到远程的
:之前的中填充该发布url是可行的-但是有没有一种更优雅的方式能够使用附加功能呢?我相信链接到远程助手取决于原型;如果您切换到jQuery,Rails的javascript帮助程序(如link\u to\u remote)可能无法工作。link\u to\u remote使用onclick属性。显然,在处理任何绑定/实时事件之前都会调用这些函数,因此您的默认值发生得太晚了
在我的例子中,我只是想防止“第二次”点击链接,所以我只是在第一次点击时取消了“onclick”属性:
/* not (yet) well tested */
function doubleClickhandler(event) {
var t = $(event.target);
if (t.data("clicked")) {
event.preventDefault();
} else {
t.data("clicked", true);
if (t.attr("onclick")) {
/* forcefully remove onclick handler */
t.attr("onclick", "");
}
}
}
function setupdoubleClickHandlers() {
$("a.doubleclick").each(function () {
var el = $(this);
el.removeClass("doubleclick"); /* prevent multiple setups */
el.bind("click", doubleClickhandler);
});
}
jQuery(document).ready(function($) {
setupdoubleClickHandlers();
$(document).bind('reveal.facebox updatedfacebox', function() {
setupdoubleClickHandlers();
});
});
returnfalse
比仅仅preventDefault
要好得多<代码>预防默认值
在IE上也失败。