我喜欢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. jQuery:使用$ .delegate附加函数附加到现有事件处理程序
- 2. 附加到事件处理程序
- 3. 实时附加事件处理程序
- 4. 附加的事件处理程序
- 5. HTML事件处理程序与React事件处理程序
- 6. jQuery附加按钮单击事件处理程序不工作
- 7. jQuery点击事件处理程序附加到DOM元素
- 8. 将多个事件的JQuery委托附加到处理程序
- 9. jQuery - 为linkButton附加事件处理程序
- 10. jQuery确认()在附加的事件处理程序
- 11. 使用If语句附加一个事件处理程序
- 12. 使用jQuery附加HTML w/click事件
- 13. jQuery事件处理程序
- 14. jQuery事件处理程序
- 15. 将事件处理程序附加到Com事件:InvalidOperationException(S7-PLCSIM)
- 16. 将事件处理程序附加到事件OnInit或OnLoad上
- 17. 附加事件:处理MenuItem.Click
- 18. 如何使用反射将事件处理程序附加到事件?
- 19. 附着事件处理程序
- 20. 动态添加jQuery的事件处理程序以动态HTML
- 21. 在现有处理程序之前附加我的事件处理程序
- 22. 使用jQuery添加事件处理程序不起作用
- 23. 附加事件处理程序调用属性
- 24. 调用jQuery的事件处理程序
- 25. 附加事件处理程序动态添加元素
- 26. JQuery清理事件处理程序
- 27. 无法将事件处理程序附加到我的控件?
- 28. 单击事件处理程序,附jQuery,不会触发
- 29. 添加iPhone OS事件的jQuery样式事件处理程序
- 30. 发行附加的onClick处理程序使用jQuery
到目前为止,它看起来像答案是“否”:) – 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