在jQuery`on`事件处理程序的数据参数中访问`this`

时间:2018-02-14 01:47:10

标签: jquery

我正在开发一个使用jQuery的on事件处理程序来抛出click事件的项目。我正在使用事件处理程序来处理结果并传递一些数据,但我需要在我的数据设置中访问this。是否可以获得对点击的元素的引用?

$listOfLinks = $('body a');
$listOfLinks.on('click', {
    'element': this.classList.contains('btn') ? 'Button!' : 'Link?',
    'text': this.innerText
}, stuffEventHandler );

jQuery docs for on Event Handler

1 个答案:

答案 0 :(得分:1)

您可以将功能作为数据发送。例如,而不是

view1: function() {
  return <div>view1</view>
}

view2: fucntion() {
  return <div>view2</view>
}

goView1: function() {
  this.setState({contentView: view1})
}

goView2: function() {
  this.setState({contentView: view2})
}

render: function () {
  return(
    {this.state.contentView()}
  )
}

你会传递类似的东西:

'element': this.classList.contains('btn') ? 'Button!' : 'Link?'

然后从您的处理程序中使用此'findElement': function(context){ return context.classList.contains('btn') ? 'Button!' : 'Link?' }

调用它