2013-05-11 141 views
1

我们遇到以下Jquery Mobile问题。 我们的网站分为移动版和固定桌面版网站。 两者都使用相同的数据库和php代码。只有模板是不同的。如何完全禁用Jquery移动版

在我们的移动网站上,我们使用Jquery mobile来获得更好的用户体验,并且工作正常。不过我们整合了一个按钮“goto desktop”。 此链接应该使我们回到我们的“正常”桌面站点。
但有问题。在桌面网站中,Jquery mobile仍处于激活状态,它取代了下拉字段,输入字段以及桌面站点的完整混乱。

我们尝试了一切以禁用JQM,但似乎没有任何工作。

当我们在桌面模板上时,我们如何从我们的移动网站模板切换到桌面站点模板并完全禁用JQM?

非常感谢您的帮助!

+1

让服务器端决定是否将jquery mobile包含在标题中,如果不存在,它将不会被激活 – 2013-05-11 22:27:18

+0

非常感谢Frederik的回应。 – user1748488 2013-05-12 00:02:31

回答

1

有几个可用的解决方案,但只有一个真的会做。

工作例如:需要http://jsfiddle.net/Gajotres/NvEcW/

几件事情,首先我们需要设置:

<script> 
    $(document).on('mobileinit', function() { 
     $.mobile.ignoreContentEnabled = true; 
    }); 
</script> 

它会给我们以编程方式打开/关闭内容增强的能力。如果你已经不知道这个mobileinit事件必须在jQuery Mobile初始化之前初始化,但在jQuery初始化之后。这必须始终是页面的一部分。

还有最后一步。当我们想从移动到桌面页面移动,我们需要重新加载页面,并使用此javascript:

$(document).on('pagebeforecreate', '#index', function(){ 
    $(this).attr('data-enhance','false'); 
}); 

Pagebeforecreate事件是很重要的,因为在这一点上的内容仍然没有提高和属性data-enhance = false将防止进一步的页面增强。如果您想再次打开它,只需将属性值设置为true即可。

如果您想了解更多的解决方案,然后看看我的其他的答案,搜索主题标记增强预防的方法:jQuery Mobile: Markup Enhancement of dynamically added content

+0

非常感谢你为这个伟大的解决方案亲爱的Gajotres! 我将尝试您的解决方案,并返回结果。 也许它可以帮助更多的成员:-) – user1748488 2013-05-11 23:40:11

+0

你好Gajotres,我们试过你的代码,但它不工作。它只能在同一页面上工作。什么可能是错误的?也许我们可以尝试其他解决方案现在我们已经知道桌面模板上的所有代码都与JQM混合了。提前致谢! – user1748488 2013-05-13 17:13:48