jQuery切换和jQuery Mobile切换,都触发?

时间:2014-07-15 12:03:08

标签: javascript jquery html jquery-mobile mobile

我刚刚开始使用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]

1 个答案:

答案 0 :(得分:0)

首先你找出用户代理(iphone,android,blackberry,webos)然后你可以分开不同平台的事件

  $.browser.device = (/android|webos|iphone|ipad|ipod|blackberry|iemobile|opera mini/i.test(navigator.userAgent.toLowerCase()));

现在$ .browser将为所有上述设备返回“设备”