HTML5 / JQuery数据属性隔离

时间:2016-05-29 23:55:48

标签: javascript jquery

Live Demo

$(document).on('mousedown', function(e) {
  if ($(e.target).closest('.SiteNav>li>a').length) {
    if ($(e.target).is("[data-trigger='active']")) {
      alert('true');
    }
  }
});

我正在使用if ($(e.target).closest('.SiteNav>li>a').length) {,以便用户可以点击<a></a><a></a>内的任何内容,例如<i></i>

回复按钮会将用户带到回复部分/页面,而另一个按钮会显示其他选项,例如“回复”,“全部回复”等。和&#39;转发&#39;但是,在显示此菜单时,我想在下拉菜单中将此data-trigger="active"设置为“停用”。并拥有“活跃的”#39;放在<li></li>上。

我遇到的问题是找到data-trigger="active"的位置。

下面的脚本可能没有多大意义,这是我从我的大型脚本中获取JSFiddle代码段的地方;

if ($(e.target).closest('.SiteNav>li>a').length) {
    if ($(e.target).closest('.SiteNav>li>a').length.is("[data-trigger='active']")) {
        alert('true');
    }
    var id = $(e.target).closest('li').data('id');
    $(".SiteNav>li>a:not([data-link='" + id + "'])").removeClass('hover sideHover active');
    $(".SiteNav>li>ul:not([data-drop='" + id + "'])").hide();

    if (!$(e.target).closest('li').find('ul').is(':visible')) {
        $(".SiteNav [data-link='" + id + "']").addClass('active');
        $(".SiteNav [data-drop='" + id + "']").show();
    } else {
        $(".SiteNav [data-link='" + id + "']").removeClass('active');
        $(".SiteNav [data-drop='" + id + "']").hide();
    }
}

0 个答案:

没有答案