我想拥有它,以便仅在单击另一个按钮后单击某个位置时才调用一个函数(可以说当我单击其他位置时该按钮处于“向下”状态)。
我如何实现这一目标?
在第一个按钮的click
事件处理程序中,将标志设置为true
。在第二个按钮的click
事件处理程序中检查标志是否为true
,然后执行您的逻辑。
var button1Clicked = false; // what you call "down"
$('#button1').click(function() { button1Clicked = true });
$('#button2').click(function() { if (button1Clicked) { /* magic */ });
要检查之前是否发生过其他点击,只需将其存储在变量中:
var firstButtonClicked = false;
firstButton.on("click", function() { firstButtonClicked = true; });
secondButton.on("click", function() {
if (firstButtonClicked) {
// do something
} else {
alert("You need to click the other button first");
}
});
在每种情况下,您都应该给用户一些反馈,即他需要先单击一个按钮。最好的解决方案是将第二个设置为disabled
,并从具有描述性标签的第一个按钮激活它。
您可以使用一个类来确定按钮的状态,例如
$('button').on('click', function(e){
$(this).toggleClass('long');
return false;
});
$(document).on('click', function(){
$('.long').removeClass('long');
});
只需在第一次单击第一个按钮时绑定第二个按钮的单击处理程序。这样,在单击第一个按钮之前,该功能不存在:
$('#button1').one('click', function() {
// Do stuff for first button's click
// Create second click handler to be called when second button clicked
$('#button2').click(function() {
// Do stuff for second button's click
});
});