3

我的布局中有很多带有 .button 类的元素。单击具有按钮类的元素后,我需要首先检查该元素是否在 box1 或 box2 的父 div 内。

一个简短的例子是......如果点击的按钮在 box1 div && (另一个条件)内,那么做一些事情。最好使用 .closet 和 .length 的组合来检查按钮是否在某个 div 内?

<div id="box1">
        <div id="column1">
             <div class="round_button"></div>
             <div style="background: #000">
                  <div class="button"></div>
                  <div class="button"></div>
                  <div class="button"></div>
                  <div class="button"></div>
                  <div class="button"></div>
                  <div class="button"></div>
             </div>
        </div>
 <div> 

<div id="box2">
        <div id="column2">
             <div class="round_button"></div>
             <div style="background: #000">
                  <div class="button"></div>
                  <div class="button"></div>
                  <div class="button"></div>
                  <div class="button"></div>
                  <div class="button"></div>
                  <div class="button"></div>
             </div>
        </div>
 <div> 
4

5 回答 5

8

除了上面的答案,如果有许多按钮,而不是单独绑定一个事件,你只想附加一次,基于它的祖先,你可以做这样的事情:

$(".button").click(function() {
  if ($(this).is("#box1 *")) {}
});
于 2012-08-23T05:00:44.933 回答
4

如果两组按钮之间的功能差异很大,我只需在每组按钮上定义事件处理程序:

$('#box1 .button').on('click', function(event) {
  // ...
});

$('#box2 .button').on('click', function(event) {
  // ...
});
于 2012-08-23T04:59:49.760 回答
1

if statement如果没有别的,你不需要。

$('#box1, #box2').find('.button').click(function() {
  //  do something
});
于 2012-08-23T04:57:40.103 回答
1

$(this).parents("#box1");在按钮的点击事件函数中使用

于 2012-08-23T04:58:01.417 回答
0
$('#box1 .button').click(function() {
  // first code
});

$('#box2 .button').click(function() {
  // second code
});
于 2012-08-23T05:01:15.887 回答