jquery:阻止在div内部单击关闭它...所有元素

时间:2010-09-23 21:00:26

标签: jquery

问题与主题一样。

示例

<div id="trigger">click here</div>
<div id="slider"> content goes here: form elems, divs, spans, a etc. </div>

到目前为止我该怎么做

    $(document.body).click(function(event){ 
        var target = $(event.target); 
          if (!target.is("#trigger") && !target.is("#slider") && [all elems in slider.div...]
}

我尝试完成的任务
避免按ID列出所有slider.div元素 - 如果可能的话。
允许一个elem喜欢div,其中id =“close”在滑块div内部关闭它。

1 个答案:

答案 0 :(得分:2)

这可以通过多种方式实现,但我最喜欢的是将触发器命名为slider_1,并在.slider时给它一个类。然后为实际滑块指定slider_1_content的id,其中包含.slider_content类。这将允许您编写类似的内容:

$(".slider").click(function() {
    $("#" + this.attr("id") + "_content") ...
});

然后,您可以将close类分配给关闭按钮/链接,并强制它们关闭父滑块,如:

$(".close").click(function() {
    $(this).closest(".slider_content").hide();
});