如何按需加载jqtouch

3
我正在尝试按需加载jqtouch,如下所示:
<script type="text/javascript" src="js/jquery.js"></script>
<script type="text/javascript">
    $(function() {
        $.getScript("js/jqtouch.min.js", function() {
             $.jQTouch();
        });
    });     
</script>

Firebug输出:$(_3c.selector).tap不是一个函数

如果我像jquery.js那样将jqtouch.min.js包含在脚本中,并调用$.jQtouch,则一切都将正常工作。 但是,我想仅在需要时加载jqtouch,但似乎无法使其正常工作。 我还尝试过对jqtouch.min.js进行ajax post,但收到了相同的错误。

1个回答

2
当您按需加载jqtouch脚本时,$(document).ready事件会在脚本加载之前触发,因此jqtouch初始化脚本永远不会执行。
解决方案很糟糕......您必须修改jqtouch脚本初始化绑定从
$(document).ready(function(){...})

to

$(document).bind('ready',function(){...})

...并且您需要修改自己的代码,在加载脚本后触发ready事件。

<script type="text/javascript" src="js/jquery.js"></script>
<script type="text/javascript">
    $(function() {
        $.getScript("js/jqtouch.min.js", function() {
             $(document).trigger('ready');
             $.jQTouch();
        });
    });     
</script>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接