关于javascript:JS onClick返回false和jQuery global .click

JS onClick return false and jQuery global .click

我用别人的代码来调试我的库:部分是普通的JS,我的库是jquery中的wirtten。它有tabs tabber.js(2006年的代码),它有tabs onclick事件连接到调用return false的dom。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
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行)。

在我的图书馆里我有:

1
2
3
4
5
6
7
$(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中执行相同的操作。将返回false替换为event.preventDefault()将使代码运行吗?

从症状来看,我的功能似乎没有执行。我试着用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属性:

1
...

(注意,您需要在属性中使用return,或者它们为反射属性分配了一个处理程序:

1
someElementReference.onclick = someFunction;

…然后在该处理程序中执行EDOCX1[2]将阻止单击的默认操作,但不会停止传播。更多(在我的博客上):关于return false的故事

但是,请注意,相对于像jquery添加的dom2样式的处理程序,旧的dom0样式的处理程序(如上面所述)被激发的顺序是未定义的。有些浏览器先启动dom0处理程序,然后启动dom2处理程序;另一些则相反。在您的情况下,这并不真正重要,因为您没有做任何事情来停止传播(尤其是,没有任何事情可以停止立即传播到同一元素上的其他处理程序),但它似乎仍然值得调用。