我正在尝试在对话框中的所有提交按钮上添加一个监听器。问题是,我的.live()
听众没有被执行,我无法弄清楚原因。
如果我使用onClick它会工作,但我宁愿更有效率,而不必将onClick添加到我所有的submi按钮。
有什么想法吗?
$('input[type="submit"]').live('click', (function (e) {
alert('test'); //never executes
}));
我在页面上加载jquery后加载base.js
文件。它不在$(document).ready();
或任何类型的任何内容中。
答案 0 :(得分:1)
如果你的目标是提高效率,那么你应该尽可能地避免使用.live功能。直播可以在触发之前冒更多事件冒泡。如果您只是使用命名函数并将其放入链接的onclick事件中,那么您的页面性能会快得多,您可以获得最佳性能。这也避免了由闭包造成的性能损失。
您可以做的下一个最快的方法是将事件直接附加到pagecreate事件上的按钮,就像这样。它可以防止关闭问题并减少事件冒泡。
<script type="text/javascript">
function mySubmitHandler(){
alert("test");
}
$("div").live("pagecreate", function(){
$('input[type="submit"]').bind('click', mySubmitHandler);
});
</script>
答案 1 :(得分:0)
这里可能是prevent default的问题吗?
查看this是否有效。