2012-08-03 119 views
-1

我想要这样做,只有当我点击另一个按钮(可以说当我点击其他按钮时,这个按钮是“向下的”)我点击某个地方时才会调用该功能。当按钮被按下时做事

我该如何做到这一点?

+1

.onmousedown()? – 2012-08-03 01:00:42

+2

如果您设置了使用按钮,您可以跟踪变量中的按钮状态,但HTML按钮不具有“向下”状态。复选框是你想要的 - 它们有一个你可以阅读的本地'checked'属性,看看它是否为'yes'。 – 2012-08-03 01:03:10

回答

2

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

var button1Clicked = false; // what you call "down" 
$('#button1').click(function() { button1Clicked = true }); 
$('#button2').click(function() { if (button1Clicked) { /* magic */ }); 
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,并从具有描述性标签的第一个按钮中激活它。

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 
    }); 
}); 
0

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

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

FIDDLE