0

我在 jquery 移动网站中使用了一些自定义 jquery 事件。我在 jquery-mobile 包含之前包含了这个 custom.js——因为我相信这是正确的做法。jquery 被首先包括在内。这些文件包含在每一页上。

<script src="http://code.jquery.com/jquery-1.8.2.min.js"></script>
<script src="/components/m/js/custom.js"></script>
<script src="http://code.jquery.com/mobile/1.2.0/jquery.mobile-1.2.0.min.js"></script>

当我加载我的主索引页面时,没有使用 custom.js 的元素。当我点击一个页面进入更深的地方时,我的问题就出在哪里。因此,我单击一个链接以查看在 custom.js 中有事件的艺术家当 jquery mobile 执行此操作时,我的单击事件不起作用。

但是,如果我重新加载页面,自定义单击事件将正常工作。

我错过了什么?我应该使用 .live('click' 而不是 .click 吗?

4

1 回答 1

0

在与 Gajotres 交谈后(通过上述评论的电子邮件),我们得出以下结论。

我的自定义 js 文件实际上必须在 jQM 文件之后。

<script src="http://code.jquery.com/jquery-1.8.2.min.js"></script>
<script src="http://code.jquery.com/mobile/1.2.0/jquery.mobile-1.2.0.min.js"></script>
<script src="/components/m/js/custom-alt.js"></script>

另外,这是我的自定义 js 文件的样子:

$(document).bind("pageinit", function() {
    var btnAddComment = $('#btn-addcomment');

    // register functions with jqm framework
    $(btnAddComment).bind('touchstart mousedown', function(e){
        e.preventDefault();
        clickCommentAdd(); 
    }); 

    function clickCommentAdd() {
        $("#form-comment").toggle();
        return false;
    }
});

以前,我使用的是“mobileint”而不是“pageint”,并且引用自 Gajotres:

原因是,pageinit 事件仅在加载 jQuery Mobile js 文件时起作用。我还看到您甚至尝试使用 mobileinit。好吧,该事件应该在 jQuery Mobile js 文件之前使用(到目前为止还不错),但是您可以使用它来绑定和单击事件,因为您需要加载 jQM js 文件来初始化页面元素。

于 2013-02-12T23:39:10.623 回答