-1

我在主 div 容器中有 12 个 div。它们分别有不同的 id。每个 div 有 6 个按钮。当第一个 div 按钮被点击时,不允许点击其他 div 的按钮,直到计数等于 6。当计数等于 6 时,下一个 div 可以点击。

jquery有什么解决办法吗?我已经尝试过,但没有得到如何做到这一点。

提前谢谢你。

4

1 回答 1

0

这个问题非常模糊,所以我在这里猜测,但您想要做的是将点击处理程序添加到主 div 本身。

所以说你的主 div 有 idmain并假设这样的结构:

<div id="main">
   <div>
     <button>A</button>
     <button>B</button>
     <!-- ...more buttons -->
   </div>
   <div>
     <button>A</button>
     <!-- ...more buttons<-->
   </div>
   <!-- ...more divs -->
 </div>

您可以处理点击事件,因为它们会冒泡到 main,例如:

$("#main").on("click", function (e) {
  var data = $(this).data("currentDiv")
    , btnDiv = $(e.target).parent();

  // If no data, this is the first click, prepare
  // the current div data to be stored
  if (!data) {
    data = {el: btnDiv, clicks: 1};
    $(btnDiv).siblings()
      .find("button").attr("disabled", "disabled");
  } 

  // If there *is* data and the parent of the clicked
  // button is not the current div, return early.
  else if (!btnDiv.is(data.el)) {
    return;
  }

  // If is the 6th click, clear the current div and 
  // restore the functionality of all buttons    
  else if (5 === data.clicks) {
    $("button", this).removeAttr("disabled");
    data = null;
  }

  // finally, increment click count if we're between
  // 1 and 5 clicks for this div
  else { data.clicks++; }

  $(this).data("currentDiv", data);
})

http://jsfiddle.net/JJyW7/1/

于 2013-10-06T17:11:10.083 回答