2012-08-03 154 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