javascript - JS onClick 返回 false 和 jQuery 全局 .click

标签 javascript jquery jquery-events

我正在用其他人的代码调试我的库:其中一部分是 vanilla JS,而我的库是用 jQuery 编写的。它有标签 tabber.js (2006 年的代码)并且它有标签 onclick 事件附加到调用 return false 的 DOM。

tabberObj.prototype.init = function(e)
{
    DOM_a = document.createElement("a") ;

    DOM_a.appendChild( document.createTextNode( t.headingText ) ) ;
    DOM_a.href = "javascript:void(null);" ;
    DOM_a.title = t.headingText ;
    DOM_a.onclick = this.navClick ;
    ...
};


tabberObj.prototype.navClick = function(event)
{
   ...
   return false;
};

Here is tab code那里有点击处理程序(第 311 和 265 行)。

在我的图书馆里我有:

$(document).bind('click.terminal', function(e) {
    var sender = $(e.target);
    if (!sender.closest('.terminal').hasClass('terminal') &&
        settings.onBlur(self) !== false) {
        self.disable();
    }
});

我的代码会触发吗?在 JS 中返回 false 是否与在 jQuery 中做同样的事情。用 event.preventDefault() 替换 return false 会使我的代码运行吗?

从症状来看,我的功能似乎没有执行。我尝试使用 wget 获取整个应用程序,但它没有运行。

最佳答案

...and it have tabs onclick event attached to DOM that call return false.

... will my code fire or return false will stopPropagate like jQuery does.

如果您的意思是选项卡上有 onclick 属性:

<div onclick="return someFunction();">...</div>

(请注意,您需要 return in 属性),或者他们为此获得分配给反射属性的处理程序:

someElementReference.onclick = someFunction;

...然后在该处理程序中执行 return false 将阻止点击的默认操作,但不会停止传播。更多(在我的博客上):The story on return false

但请注意,旧 DOM0 风格的处理程序(如上)相对于 DOM2 风格的处理程序(如 jQuery 添加的处理程序)的触发顺序未定义。一些浏览器首先触发 DOM0 处理程序,然后是 DOM2 处理程序;其他人则相反。在你的情况下这并不重要,因为你没有做任何事情来停止传播(特别是,没有什么可以阻止立即传播到同一元素上的其他处理程序),但它似乎仍然值得呼唤。

关于javascript - JS onClick 返回 false 和 jQuery 全局 .click,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24228063/

相关文章:

javascript - jquery 循环进度 |超过100%时变色

javascript - 触发 ('change' ) 功能在弹出窗口中不起作用

javascript - 使用我的 jQuery Javascript 提交操作

javascript - 如何使用 JavaScript 和 jQuery 动态添加文本?

javascript - CSS JQuery 数据表 - 奇怪的渲染

javascript - 在react中修改快捷方式如CTRL+F

javascript - 尝试使用 $compileProvider、CRUD 和引导指令 ng-clink 失败

javascript - 使用 jQuery 的 angularjs 应用程序中的路由错误

javascript - 处理浏览器的 'ctrl+s' 按键事件

javascript - 用户输入后加载 Material UI AutoComplete 建议