-1

我想拥有它,以便仅在单击另一个按钮后单击某个位置时才调用一个函数(可以说当我单击其他位置时该按钮处于“向下”状态)。

我如何实现这一目标?

4

4 回答 4

2

在第一个按钮的click事件处理程序中,将标志设置为true。在第二个按钮的click事件处理程序中检查标志是否为true,然后执行您的逻辑。

var button1Clicked = false; // what you call "down"
$('#button1').click(function() { button1Clicked = true });
$('#button2').click(function() { if (button1Clicked) { /* magic */ });
于 2012-08-03T01:00:47.443 回答
1

要检查之前是否发生过其他点击,只需将其存储在变量中:

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,并从具有描述性标签的第一个按钮激活它。

于 2012-08-03T01:02:02.400 回答
0

您可以使用一个类来确定按钮的状态,例如

$('button').on('click', function(e){
    $(this).toggleClass('long');
    return false;
});
$(document).on('click', function(){
    $('.long').removeClass('long');
});

小提琴

于 2012-08-03T01:19:59.120 回答
0

只需在第一次单击第一个按钮时绑定第二个按钮的单击处理程序。这样,在单击第一个按钮之前,该功能不存在:

$('#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
    });
});
于 2012-08-03T01:16:37.450 回答