【问题标题】:jQuery toggle and jQuery Mobile toggle, both trigger?jQuery 切换和 jQuery Mobile 切换,都触发?
【发布时间】:2014-07-15 12:03:07
【问题描述】:

我最近才开始使用 jQuery Mobile。我遇到了一个我还没有完全解决的问题。

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

var navigation = $main_nav.find("[data-toggle-id='" + target + "']");
navigation.toggle(200, function() {
      console.log('toogle');
});

编辑
演示:http://jsfiddle.net/4mpdR/4/
我在这里没有得到相同的行为,但这基本上是我的设置。



编辑2

$(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');
        });
    });
});



编辑3
这只是一个<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]

【问题讨论】:

  • 我认为 JSfiddle 会提供更好的洞察力......你能添加它吗?
  • 也许你应该选择$(navigation).toggle()...
  • 如果您在小提琴中没有遇到同样的问题,那么您可能已经分配了两次事件。如果你能给出你的全部功能,那我们可以看看……
  • @j809 'navigation' 已经是一个 jQuery 对象了。
  • navigation 有多个对象吗?或者它的内容是一个数组?请使用console.log 进行导航并告诉您的输出...

标签: javascript jquery html jquery-mobile mobile


【解决方案1】:

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

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

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

【讨论】:

  • 感谢您的回答,但我不知道在这种情况下这对我有什么帮助?
猜你喜欢
  • 1970-01-01
  • 2023-04-03
  • 1970-01-01
  • 2013-05-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-10-19
相关资源
最近更新 更多