JS onClick返回false, jQuery全局.click

JS onClick return false and jQuery global .click

本文关键字:jQuery 全局 click false onClick 返回 JS      更新时间:2023-09-26

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

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;
};

这里是标签代码,其中有点击处理程序(第311行和265行)。

在我的图书馆中有:

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

我的代码会着火吗?Does返回false在JS做同样的事情在jQuery。用event.preventDefault()代替返回false会使我的代码运行吗?

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

…它有标签onclick事件附加到DOM调用返回false。

…我的代码是否会触发或返回false将停止传播像jQuery一样。

如果你的意思是标签上有onclick属性:

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

(注意,您需要在属性中使用return ),或者它们为此获得分配给反射属性的处理程序:

someElementReference.onclick = someFunction;

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

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