query on click事件不会返回触发上下文

时间:2013-12-04 17:36:50

标签: javascript jquery twitter-bootstrap

我将我的网络应用程序转移到Bootstrap,但我遇到了下一个问题。

on('click')事件不会将任何上下文和事件源传递给触发函数。

$('#'+target+'_HID.box.flipped:visible a').click(function(e){
        console.log('otroclick',e,this)
    })

这会触发console.log消息,但是这个消息是空的,在按钮引导之前事件变得相当正常。 在链接之前它们是按钮但是同样的事情发生了。

2 个答案:

答案 0 :(得分:1)

我假设您希望处理程序中的this值与设置事件的代码的this值相同?如果是这样,您可以使用bind轻松实现此目的。 Bind允许您预先设置函数的this值(还可以选择咖喱参数)。

$('#'+target+'_HID.box.flipped:visible a').click(function(e){
        console.log('otroclick',e,this)
}.bind(this));

这会将处理程序的this值设置为当前this值。

就像所有好东西一样,IE8不支持bind,所以如果你需要支持那堆,你需要从here获取一个垫片。

答案 1 :(得分:0)

这工作正常,我已经测试了这个

$( "#target" ).click({a:5}, function(evt) {
  console.log( "------------" );
  console.log( this, evt );
  console.log( evt.data );
});

你可以检查一下 http://api.jquery.com/visible-selector/

您可能需要更新jquery