javascript
  • jquery
  • html
  • jquery-mobile
  • mobile
  • 2014-07-15 89 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

    謝謝你的回答,但我不明白這將如何幫助我在這種情況下? –

    相關問題