6

我正在使用 jqm 框架构建一个 webapp,并且pageshow在包含 jQuery 小部件 k3dcarousel 时我一直在尝试使用该功能。在有问题的页面上,我在data-role="page"div 下面有我的脚本,

$("#page-about").live(
    "pageshow",
    function (event) {
        $('#k3dCarousel_portrait').k3dCarousel();
    }
);

看来我需要点击我的链接两次才能加载 JS 函数,这会让我觉得我使用这个函数是错误的。另外,如果我不使用 $("#page-about").die(); 函数下面的pageshow函数,如果我单击返回然后再次单击链接,脚本将被多次加载。

我是否使用pageshow错误的逻辑?有没有更好的方法来实现我正在尝试做的事情:AJAX 这个页面到我的移动框架中。

我知道这是一个相当具体的问题,但希望有一个通用的答案,因为在我看来这可能发生在任何小部件上。

非常感谢任何帮助,如果有帮助,我可以粘贴更多代码。

感谢您的时间。

4

1 回答 1

7

由于您绑定到pageshow事件,因此每次查看页面时都会触发匿名函数。如果您只想在页面的第一个视图上调用代码,则绑定到pagecreate/pageinit事件或检查代码中是否存在 k3dCarousel pageshow

$("#page-about").live(
    "pageshow",
    function (event) {
        //check for the existence of HTML within the container element
        if ($('#k3dCarousel_portrait').html().length == 0) {
            $('#k3dCarousel_portrait').k3dCarousel();
        }
    }
);

以下是对所有 jQuery Mobile 特定事件的解释:http: //jquerymobile.com/demos/1.0rc3/docs/api/events.html

于 2011-11-15T20:43:58.733 回答