jQuery /deep/ delegation
jQuery /deep/ delegation
使用
webcomponents,您可以使用 /deep/
来定位 shadowdom 的内部元素,在我尝试使用事件委托之前,它可以正常工作。
常规点击功能将起作用:
$('html /deep/ a').on('click', function(e) {
e.preventDefault()
console.log('foo')
})
委派似乎没有效果:
$('html').on('click', '/deep/ a', function(e) {
e.preventDefault()
console.log('bar')
})
知道在这里做什么吗?
Shadow DOM 重新定位事件,使它们看起来来自宿主元素。这是为了保留封装模型(否则您可以抓住目标并在组件内部四处乱窜)。
http://www.html5rocks.com/en/tutorials/webcomponents/shadowdom-301/#toc-events
也许您可以尝试委托给主机元素,然后使用event.path
来确定是否单击了a
?
相关文章:
- 在什么情况下,应该.deep.equal失败,但使用JSON.stringify进行比较工作正常
- 在集合中使用Backbone Deep Model
- Node.js assert.deep等于2个值
- Angular.js deep watch Coffeescript class instance
- JavaScript: Deep Copy Image() Object
- jQuery.extend() deep clone nested objects
- jQuery /deep/ delegation
- JavaScript Object.Observe delegation
- Firebase - Deep Query orderByChild with equalTo
- Deep "npm update"?
- /deep/combinator视频范围蓝色css未正确显示
- on() delegation VS delegate()
- Swift Deep link检查app是否安装
- 与椅子相关的错误消息:“AssertionError: expected undefined to deep equal
- Javascript“deep"检查是否有定义
- 在AngularJS中,Deep $watch是一个集合
- jQuery .each deep selecting
- 期望deep属性具有多个值中的任何一个
- Uber API Deep Link Android