我在主 div 容器中有 12 个 div。它们分别有不同的 id。每个 div 有 6 个按钮。当第一个 div 按钮被点击时,不允许点击其他 div 的按钮,直到计数等于 6。当计数等于 6 时,下一个 div 可以点击。
jquery有什么解决办法吗?我已经尝试过,但没有得到如何做到这一点。
提前谢谢你。
我在主 div 容器中有 12 个 div。它们分别有不同的 id。每个 div 有 6 个按钮。当第一个 div 按钮被点击时,不允许点击其他 div 的按钮,直到计数等于 6。当计数等于 6 时,下一个 div 可以点击。
jquery有什么解决办法吗?我已经尝试过,但没有得到如何做到这一点。
提前谢谢你。
这个问题非常模糊,所以我在这里猜测,但您想要做的是将点击处理程序添加到主 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);
})