如何隐藏使用.after()添加的一些标记?

时间:2012-12-28 22:47:29

标签: jquery

在我正在使用的导航栏中,有一个箭头添加到带有jquery的“Active”项目中:

$('.top-bar-wrapper li.active a').after('<div class="nav-active-arrow"></div>');

该代码无法更改,我需要按原样使用它。

我需要做的是在单击按钮时隐藏.nav-active-arrow标记。所以,我有以下几点:

var navArrow = $('.nav-active-arrow');

$('#nav-bar-churches').click( function(e) {
  churchesBar.show();
  navArrow.hide();
  e.stopPropagation();
});

还有更多内容 - 例如,我在一些事件上做了一个.show。但是,上面的代码对我不起作用,我猜这是因为.nav-active-arrow函数中创建了.after()

我的想法是否正确?有什么建议吗?

2 个答案:

答案 0 :(得分:1)

您不需要$('.nav-active-arrow')侧面点击,需要将其置于点击事件中以确保其availabilty

$('#nav-bar-churches').click( function(e) {
  var navArrow = $('.nav-active-arrow');
  churchesBar.show();
  navArrow.hide();
  e.stopPropagation();
});

答案 1 :(得分:1)

尝试将var navArrow = $('.nav-active-arrow');放在点击功能中,如下所示:

$('#nav-bar-churches').click( function(e) {    
  churchesBar.show();
  var navArrow = $('.nav-active-arrow');
  navArrow.hide();
  e.stopPropagation();
});

或者,更简洁:

$('#nav-bar-churches').click( function(e) {    
  churchesBar.show();
  $('.nav-active-arrow').hide();
  e.stopPropagation();
});