Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
jquery onclick函数未在rails链接到远程时启动_Jquery_Ruby On Rails_Onclick_Link To Remote - Fatal编程技术网

jquery onclick函数未在rails链接到远程时启动

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

在页面的js文件中,在
$(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上也失败。