我喜欢jQuery在使用其“绑定”方法时包装事件的方式。然而,设置绑定很尴尬。有什么方法可以将html的易用性(例如onKeyPress="foo(event)"
)与jQuery独立于浏览器的事件处理优点结合起来吗?使用html附加jquery事件处理程序?
回答
您的意思是?
function foo(event) {
alert(event.target);
}
$('.someSelector').keypress(foo);
无论是在HTML或者你需要创建一个功能foo
JavaScript的方式,所以也许这是更接近你所期待的。
我不确定你对jQuery的处理程序绑定感到尴尬。
如果HTML元素没有类或ID,那么“someSelector”是什么?难道不得不声明一个元素为HTML,然后返回并以某种方式将其定位到DOM中,并将一个事件处理程序附加到文件中的不同位置,而不是仅仅声明元素及其事件处理程序时间? – JoelFan 2010-11-16 18:12:57
@JoelFan - jQuery完全是从DOM中选择,然后执行操作。如果元素没有一致的标识符,并且你不希望为了选择的目的而添加一个标识符,那么我想我不得不问一下你所做的jQuery处理程序绑定是什么,这足以说服你计划你的标记以适应DOM选择。或者我错过了你的观点? – user113716 2010-11-16 18:27:27
我喜欢jQuery独立于浏览器的“包装器”,它为您提供事件处理程序... http://api.jquery.com/category/events/event-object/...我不同意jQuery是所有关于从DOM中选择......这是关于独立于浏览器的,更简单的客户端脚本......终于...我不是“计划”我的标记......我正在修复没有开发的现有标记jQuery – JoelFan 2010-11-16 19:02:38
你可能不想这样做。
您可能需要阅读event delegation in JavaScript,这些jquery绑定方法可以为您处理整齐。
这里的亮点:
事件代表团有几个好处 到Web 应用程序的性能:
更少的功能来管理。占用内存少 。您的 代码与DOM之间的关系更少。当 通过innerHTML改变DOM时,不需要担心 关于移除事件处理程序。
你最好不要使用jQuery的结合佣工像$ whatever.click(FN)等
其实here is another question on SO引用我这样做,也可以帮助同一篇文章。
- 1. 附加到事件处理程序
- 2. 附加的事件处理程序
- 3. HTML事件处理程序与React事件处理程序
- 4. jQuery确认()在附加的事件处理程序
- 5. jQuery附加按钮单击事件处理程序不工作
- 6. jQuery - 为linkButton附加事件处理程序
- 7. jQuery点击事件处理程序附加到DOM元素
- 8. 将多个事件的JQuery委托附加到处理程序
- 9. 使用jQuery附加HTML w/click事件
- 10. jQuery事件处理程序
- 11. 将事件处理程序附加到Com事件:InvalidOperationException(S7-PLCSIM)
- 12. 将事件处理程序附加到事件OnInit或OnLoad上
- 13. 如何使用反射将事件处理程序附加到事件?
- 14. 动态添加jQuery的事件处理程序以动态HTML
- 15. 附着事件处理程序
- 16. 在现有处理程序之前附加我的事件处理程序
- 17. 调用jQuery的事件处理程序
- 18. 附加事件处理程序动态添加元素
- 19. JQuery清理事件处理程序
- 20. 单击事件处理程序,附jQuery,不会触发
- 21. 添加iPhone OS事件的jQuery样式事件处理程序
- 22. 发行附加的onClick处理程序使用jQuery
- 23. 如何使用TypeScript将拖动事件处理程序附加到React组件
- 24. 使用新的处理程序附加事件处理程序vs直接分配
- 25. 附加事件处理程序到动态创建TreeViewItems
- 26. 附加事件处理程序优化javascript
- 27. 如何将变更事件处理程序附加到变量?
- 28. 将附加信息传递到事件处理程序中
- 29. ZF2在事件处理程序之间共享数据(附加)
- 30. 将JavaScript事件处理程序附加到Zend_Form_Element
到目前为止,它看起来像答案是“否”:) – JoelFan 2010-11-16 19:26:07
这可能是这种情况,取决于您对* ease *的看法。由于jQuery(作为JavaScript)完全在JavaScript端操作,所以对HTML端的唯一访问就是DOM API提供的桥梁。当然,HTML提供的桥梁是inline'on [event]'属性。所以你真的看着这个或那个。 – user113716 2010-11-16 19:37:12
@patrick,sux2bme – JoelFan 2010-11-16 19:39:00