- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的 Javascript 不太符合要求,我正在努力重写提供的 rails.js
中的函数。 .
我想修改a[data-confirm]
的方式使用 jQuery UI 模式对话而不是普通的 javascript 来处理 confirm()
.
相关函数在rails.js
是 allowAction(element)
。如果我在另一个文件中定义它,我可以从 firebug 控制台成功调用它,但是 rails.js
版本仍然从 anchor 调用 data-confirm
属性。
我认为这是因为整个rails.js
文件包含在:
(function($) {
...
})( jQuery );
是否有一种明智的方法来覆盖此函数,而不修改提供的 rails.js
?
编辑:
来电rails.js
至allowAction
包裹在 .live
中调用:
$('a[data-confirm], a[data-method], a[data-remote]').live('click.rails', function(e) {
var link = $(this);
if (!allowAction(link)) return false;
if (link.attr('data-remote')) {
handleRemote(link);
return false;
} else if (link.attr('data-method')) {
handleMethod(link);
return false;
}
});
我还尝试在rails.js
之前和之后包含我的javascript ,无济于事。
编辑:
所以,如果我打电话 .die('click.rails')
然后我可以重新定义整个 click.rails
事件,而是原创handleRemote()
和handleMethod()
不调用函数。
最佳答案
仅供引用,我刚刚向 Rails jquery-ujs 添加了一个外部 API 来完成此类事情。现在,您可以通过插入(并重写 1 行)$.rails.allowAction
函数,使rails.js 使用自定义确认方法。
请参阅我的文章,Rails jQuery UJS: Now Interactive ,获取带有示例的完整解释。
编辑:现在,截至 this commit可以用相同的方式覆盖confirm
对话框函数。例如
$.rails.confirm = function(message) { return myConfirmDialog(message); };
关于jquery - 如何在不修改提供的 Rails.js 的情况下覆盖 Rails 3 不显眼的 javascript 函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5366230/
我是一名优秀的程序员,十分优秀!