我有一个点击事件,我希望覆盖点击事件

时间:2014-01-30 19:45:29

标签: jquery

目前我正在使用toggleClass滑动容器以显示菜单。

var btn = $('#headBtn');
var wrap = $('#wrapper');

function slider_click() {
    btn.on('click', function (event) {
        wrap.toggleClass('slideout');
    });
}
slider_click();

这很有效。

我还想在容器上启用点击事件以移除课程.slideout但是当我启用此功能时,容器会在中滑动,但会再次退出

function slider_tap() {
    var $ = jQuery;
    var hammertime = Hammer(wrap).on('tap', function () {
        $(this).removeClass('slideout');
    });

我正在使用的按钮也是正在侦听点按事件的容器的一部分,因此当您点击该事件时,它似乎会触发toggleClass和点击事件。

如何启用点击事件,仍然可以正确使用我的按钮。

我希望能够将容器滑出,并能够通过删除班级slideout来点击屏幕上的任何位置包括按钮以再次将其重新滑入。

1 个答案:

答案 0 :(得分:1)

坚持点击将使这项工作,虽然比点击慢但它应该工作

因为我建议检测事件目标(事件源自哪里)http://api.jquery.com/event.target/

如果这适用于锤子,那么你可以说一下,如果目标是按钮,不做任何事情,否则删除课程。假设目标事物有效,那么

var hammertime = Hammer(wrap).on('tap', function (event) {
    if( !$(event.target).is('#headBtn') ) {
        $(this).removeClass('slideout');
    }
});