Javascript 无法触发事件$.mobile.changePage

Javascript 无法触发事件$.mobile.changePage,javascript,jquery,jquery-mobile,Javascript,Jquery,Jquery Mobile,到目前为止,我还没有弄明白为什么$.mobile.changePage不会在下一页/第二页启动,它只在索引页中运行。我知道使用jquerymobileall脚本只会加载一次,因为jqm是以ajax方式构建的。但我还是找不到解决问题的办法 如果不在index.page或首次加载中,则不会触发下面的脚本 $(document).bind("pageinit", function(){ $('.sns-down').bind('swipe', funct

到目前为止,我还没有弄明白为什么$.mobile.changePage不会在下一页/第二页启动,它只在索引页中运行。我知道使用jquerymobileall脚本只会加载一次,因为jqm是以ajax方式构建的。但我还是找不到解决问题的办法

如果不在index.page或首次加载中,则不会触发下面的脚本

            $(document).bind("pageinit", function(){
            $('.sns-down').bind('swipe', function(event) {
                $.mobile.changePage('#featured', { transition: "slidedown"});
            });
        });
我做了一个简单的演示,我把它附在这里,以便进一步澄清。


请帮助。

您好,这可能会给您一个想法,您可以复制粘贴代码:

你能帮上忙吗,但上面的应该会有帮助


干杯

不要使用$document.bind,使用新的on委托,这会在文档根目录下放置一个侦听器,侦听jQM添加新页面时出现的pageinit/pageshow事件

$(document).on('pageinit', 'div:jqmData(role="page"), div:jqmData(role="dialog")', function(event){
        $(this).find('.sns-down').bind('swipe', function(event) {
            $.mobile.changePage('#featured', { transition: "slidedown"});
        });
不要直接使用$'.sns down'此选择器可能会无意中选择不在当前页面内的元素,您应该始终从当前页面进行搜索

下一件要检查的事情是,如果特色存在,如果你把它包括在你的第一页,那么它就会在那里。如果您的第二个页面是多页面模板,并且您链接到它,那么jQM只从多页面模板中提取单个页面。请尝试实际页面以排除此问题


使用调试器/警报来确保页面转换正确捕获pageinit,以排除这种情况,但它应该可以工作。

-我已经输入了所有必要的代码。但无法运行它。因为,我有3个文件,我使用了一个滑动事件。JSFIDLE可以处理这个问题吗?请尝试我的下载链接以获取更多信息Hiya对JSFIDLE的一些建议以删除一些错误1使用JSFIDLE我认为test1和2.php不存在,因此请删除它们2没有类。sns在html中,我将看到您获得的链接谢谢!**更新:从未使用过你提到的下载站点。如果可以的话,JSFIDLE将非常棒:好的,等待你的回复。希望你能找到一个解决方法早上好,我马上测试一下。希望它现在能起作用^_^你所说的尝试实际页面是什么意思?我想这是我的问题。在我的第二页中,我有一个多页/2数据角色=页@_@你不能这么做,当jQM从一个多页面模板加载一个页面时,它只抓取一个页面,它完全忽略页面上的任何其他页面和标签中包含的任何JS。记住这一点很好,这意味着所有的JS都需要位于站点的任何入口点上。在我的例子中,每个页面只包含一次我需要的JS,后续页面不会加载新的JS。将您的特色页面移动到一个单独的文件中,然后切换到该页面,它应该可以正常工作。谢谢,这正是我为解决此问题所做的。谢谢你,克莱。我代表我的家人向你致敬:P