jQuery Mobile .live没有处理表单提交按钮

时间:2011-11-11 01:41:59

标签: jquery jquery-mobile

我正在尝试在对话框中的所有提交按钮上添加一个监听器。问题是,我的.live()听众没有被执行,我无法弄清楚原因。

如果我使用onClick它会工作,但我宁愿更有效率,而不必将onClick添加到我所有的submi按钮。

有什么想法吗?

$('input[type="submit"]').live('click', (function (e) {
    alert('test'); //never executes
}));

我在页面上加载jquery后加载base.js文件。它不在$(document).ready();或任何类型的任何内容中。

2 个答案:

答案 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是否有效。