我刚刚开始使用jQuery Mobile。我遇到了一个我还没有完成的问题。
我收到了这段代码。它的作用是它触发toggle
两次。一个用于jQuery,另一个用于jQuery Mobile(在删除对jQM的引用时按预期工作)。有关如何避免使用Mobile的任何想法?添加命名空间......?
var navigation = $main_nav.find("[data-toggle-id='" + target + "']");
navigation.toggle(200, function() {
console.log('toogle');
});
修改
演示:http://jsfiddle.net/4mpdR/4/
我在这里没有得到相同的行为,但这基本上就是我的设置。
的 EDIT2
$(function () {
$(document).on('click', '.nav__toggle', function () {
var $main_nav = $('.main-nav');
var target = $(this).data('target');
var navigation = $main_nav.find("[data-toggle-id='" + target + "']");
navigation.toggle(200, function() {
console.log('toogle');
});
});
});
的 EDIT3
这只是一个<nav>
。在控制台中查看我看到它触发两次,一次它引用我的实际.js文件,第二次是VM [编号],删除jQuery Mobile消除了VM。
[nav.main-nav__collapse.clearfix, prevObject: jQuery.fn.jQuery.init[1], context: document, selector: ".main-nav [data-toggle-id='main-nav__collapse']", constructor: function, init: function…]
0: nav.main-nav__collapse.clearfix
context: document
length: 1
prevObject: jQuery.fn.jQuery.init[1]
selector: ".main-nav [data-toggle-id='main-nav__collapse']"
__proto__: Object[0]
答案 0 :(得分:0)
首先你找出用户代理(iphone,android,blackberry,webos)然后你可以分开不同平台的事件
$.browser.device = (/android|webos|iphone|ipad|ipod|blackberry|iemobile|opera mini/i.test(navigator.userAgent.toLowerCase()));
现在$ .browser将为所有上述设备返回“设备”