javascript
  • jquery
  • html
  • jquery-mobile
  • mobile
  • 2014-07-15 26 views 0 likes 
    0

    我刚刚开始使用jQuery Mobile。我遇到了一个我还没有完成的问题。jQuery切换和jQuery Mobile切换,都触发?

    我得到了这段代码。它所做的是它触发两次toggle。一个用于jQuery,另一个用于jQuery Mobile(在删除对jQM的引用时按预期工作)。有关如何避免使用移动设备的任何想法?添加命名空间...?

    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消除虚拟机。

    [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

    我认为JSfiddle会提供更好的洞察力......您可以添加它吗? – j809

    +0

    也许你应该用'$(navigation).toggle()'... – j809

    +0

    如果你在小提琴中没有得到相同的问题,那么你可能已经分配了两次事件。如果你可以给你的整个功能,那么我们可以看看它... – j809

    回答

    0

    首先,找出用户代理(iphone,Android,黑莓,webOS的),那么你可以在不同的平台

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

    的情况下,现在分开$ .browser将返回 “设备”,上述所有设备

    +0

    谢谢你的回答,但我不明白这将如何帮助我在这种情况下? –

    相关问题