jQuery Mobile的(单击事件)(jQuery mobile (click event))

2019-06-26 00:49发布

我正在开发智能手机的混合应用。

我想隐藏/显示<div>slideDown / slideUp

当我按一下按钮,在菜单<div>应该隐藏/显示取决于上下文。 一切都在我的电脑上工作良好,但它只是没有我的手机在所有的工作,没有任何反应。

这里是我的HTML代码

<a class="btnMenuDyn" data-role="button">Masquer le menu</a>

这里我jQuery Mobile的代码:

$(document).bind('pageinit', function(e){


// définition des variables
var btnMenuDyn = $('a.btnMenuDyn'),
    menuDyn = $('div.menuDyn');

$(btnMenuDyn).bind('click', function(){


    // condition pour afficher ou non le menu
    if ($(menuDyn).hasClass("menuDynHide"))
    {
        $(menuDyn).slideDown().removeClass("menuDynHide");
    }
    else{
        $(menuDyn).slideUp().addClass("menuDynHide");
    }

});
});

Answer 1:

这个问题是手机不支持点击他们使用touchstart和touchend所以可以跟踪运动,如果你仍然想测试你能做到这一点的计算机上

$(btnMenuDyn).bind('touchstart mousedown', function(event){
    event.preventDefault();
    if ($(menuDyn).hasClass("menuDynHide"))
    {
        $(menuDyn).slideDown().removeClass("menuDynHide");
    }
    else{
        $(menuDyn).slideUp().addClass("menuDynHide");
    }

});

用同样的回答另一个问题, 在浏览器的jQuery touchstart

更多资料可以在这里找到http://backtothecode.blogspot.com/2009/10/javascript-touch-and-gesture-events.html



Answer 2:

我会建议使用on()而不是bind()

而且,由于您选择这样做:

var btnMenuDyn = $('a.btnMenuDyn')

btnMenuDyn是一个jquery dom元素,所以改变该:

if ($(menuDyn).hasClass("menuDynHide"))

if (menuDyn.hasClass("menuDynHide"))

并且优选地声明jquery的DOM元素是这样的:

var $btnMenuDyn = $('a.btnMenuDyn')


文章来源: jQuery mobile (click event)