2012-12-14 135 views
0

點擊()我有一個複雜的問題。我有4個按鈕命名爲功能1,功能2,方法1和方法2。如何在另一次點擊()被觸發時清除點擊()?

<button id="function1"> Function 1</button> 
<button id="function2">Function 2</button> 
<button id="method1">Method 1</button> 
<button id="method2">Method 2</button> 

點擊時在功能1和被點擊方法1我必須觸發這樣

$("#function1").click(function(){ 
$('#method1').click(function(){ 
$('#section1').html('<img src="http://us.123rf.com/400wm/400/400/myvector/myvector1201/myvector120102079/12127940- vector-illustration-of-single-isolated-airport-icon.jpg"/>'); 
    }); 
}); 
一個動作

像這樣,我有四個不同的組合功能1方法1,功能1方法2,功能2方法1,功能2方法2.

問題是,當我選擇功能1與任何方法,它工作正常。當我選擇功能1後選擇功能2時,它會更改這兩個值。

我想清除以前的點擊(),只有選定的組合纔會發生更改。

我已經提前

+0

是否有一個原因,爲什麼你綁定點擊處理程序**'「#method1」** ** **點擊處理程序'「#function1」'? – 2012-12-14 06:11:05

+1

如何存儲哪些按鈕被按下並相應地執行? – zerkms

+0

因爲它只激活#function1被點擊 –

回答

4

您正在尋找unbind增加了BIN

感謝,這消除事件處理程序。 Updated Bin

+0

或'.off' http://api.jquery.com/off/ – jaredrada

+0

@TJCrowder我試過了,但它鎖定了功能不停止變化 –

+0

@VivekDragon:查看更新的bin。 –

0

我不認爲這是一個好主意,玩綁定順序點擊。創建一些變量來包含點擊序列,並檢查序列是否符合您感興趣的內容。這只是一個例子:

var prevClick = ''; 
var currClick=''; 

function doClick() { 
    var name = $(this).attr("id"); 
    prevClick = currClick; 
    currClick = name; 
    checkSequence(); 
} 

function checkSequence() { 
    // Check the sequence. 
    if ((prevClick == 'function1') && (currClick == 'method1')) 
    { 
     $('#section1').html('<img src="http://us.123rf.com/400wm/400/400/myvector/myvector1201/myvector120102079/12127940- vector-illustration-of-single-isolated-airport-icon.jpg"/>'); 
    } 
} 

$(function(){ 
    // Assume that you only this four buttons. 
    // Otherwise put more specific jQuery selector like adding a class. 
    $("button").click(doClick); 
}); 
0

$ .click用於添加事件處理程序。當您點擊'function1'/'function2'按鈕時,您將添加一個事件處理程序到'method1'。例如,當用戶點擊「功能1」2次,「功能2」3次。 'method1'將有5個事件處理程序,2個用於'function1',3個用於'function2'。這不是一個好設計。

爲您的目的。這裏是一個解決方案:

var funType = 0; 
$("#function1").click(function(){ 
    funType = 1; 
}); 
$("#function2").click(function(){ 
    funType = 2; 
}); 

$('#method1').click(function(){ 
    if(funType == 1){ 
     //function1 is clicked 
    } 
    else if(funType == 2){ 
     //function2 is clicked 
    } 
}); 

$('#method2').click(function(){ 
    if(funType == 1){ 
     //function1 is clicked 
     } 
    else if(funType == 2){ 
     //function2 is clicked 
    } 
}); 
相關問題