2017-07-01 66 views
2

我的問題與之前提出的其他問題有點不同,因爲我主要想要激活但(不僅僅是激發它)。這裏是我的syntx:如何激活另一個按鈕的按鈕

$("#second_btn").click(function(){ 
 
     $('#first_btn').addClass('active'); 
 
    })
#first_btn{ 
 
     background-color: green; 
 
    } 
 
    #first_btn:active{ 
 
     background-color: yellow; 
 
    } 
 
    
 
    #first_btn.active{ 
 
    background-color: yellow; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<button id="first_btn"> 
 
    first_btn 
 
    </button> 
 
    <button id="second_btn"> 
 
    second_btn 
 
    </button>

基本上我在找的是當第二按鈕被點擊我想第一個按鈕被解僱和按鈕(第一)的顏色也應該是變成黃色,就好像按鈕一被點擊一樣。

這裏是一個的jsfiddle版本吧:click here

你能不能幫我鑑定,我缺少的是什麼?

+1

的[一個鍵點火按鈕,另一個點擊事件]可能的複製(https://開頭計算器.com/questions/7532320/one-button-firing-another-buttons-click-event) –

+2

爲什麼在你的第二個按鈕點擊處理程序中,你正在嘗試設置'active'類是否存在按鈕的類爲'#btn'? –

+1

你是什麼意思的火..你需要點擊事件被髮射第二個按鈕? – praveen

回答

2

你需要的是模擬按鈕點擊動作:第二個按鈕的作用與第一個按鈕相似。

$("#first_btn").mousedown(function(){ 
    $("#second_btn").addClass("active"); 
    }); 
    $("#first_btn").mouseup(function(){ 
    $("#second_btn").removeClass("active"); 
    }); 

您可以添加事件添加/刪除下課鏈接,如果你想在第二個按鈕一個真正的「點擊」動作

+0

非常感謝您的幫助 – Lucas

2

您正在改變類錯誤的元素,改變$('#btn')$('#first_btn')

$("#second_btn").click(function(){ 
    $('#first_btn').addClass('active'); 
}); 

此外,您還需要使用更多通用類,像這樣:

.active { 
    background-color: yellow; 
} 
+0

斑點。但是,這並沒有解決問題 – Lucas

+0

它永久性地將背景顏色更改爲黃色,這不是我正在尋找的 – Lucas

+0

請運行代碼段,然後您將看到我在說什麼 – Lucas

3
$('#btn').addClass('active'); 

你在那裏有一些錯誤: - 第一個#btn解析爲無(這不是你的DOM中的ID) - 你正在添加一個類'active'所以你不得不在你的css中瞄準那個類。請注意,我改變了 ':'(僞元素)的一個(類選擇器)

#first_btn.active{ 
    background-color: yellow; 
} 

給它一些嘗試和來這裏,如果你遇到更多的麻煩;)

EDITED '':

這可能不是最好的方法,但它可以幫助實現你想要的:

$("#second_btn").click(function(){ 
    $('#first_btn').toggleClass('active'); 
    window.setTimeout(function(){ 
    $('#first_btn').toggleClass('active'); 
    }, 100); 
}) 

我在做什麼這裏設置一個「積極的」類(繪畫按鈕黃色)和0.1秒的時間週期後, econds再次切換該類(恢復原始按鈕顏色)。

您認爲如何?

+0

yes上述語法使第一個按鈕背景顏色在第二個按鈕被觸發時變爲黃色。現在的問題是,第一個按鈕的背景顏色變爲永久性地改變,而不是時間 – Lucas

+0

短期內運行的代碼片段,你會看到什麼,我說什麼 – Lucas

+0

@AvaLucas編輯 –

1
$("#second_btn").click(function(){ 
    $('#first_btn').click(); 
    $('#first_btn').addClass('active'); 
}) 
#first_btn.active{ 
background-color:yellow; 
} 

這將觸發一個事件,點擊第一個按鈕並將顏色更改爲黃色。

然後定義一個處理程序來處理第一個按鈕點擊來處理該事件

以U提供u的分配活動類錯誤的ID.Also添加觸發點擊事件第一個按鈕小提琴版本。

+0

它永久性地改變背景顏色這不是我要找的 – Lucas

+0

請運行代碼片段,你會看到我在說什麼 – Lucas

+0

這隻會改變顏色,當它有類活動..但是當你刪除類活動..你可以有其他的默認CSS。 @AvaLucas – praveen

1

你應該給樣式類,所以:

#first_btn.active{ // not :active 
    background-color: yellow; 
} 

如果你想模擬點擊一個第一個按鈕,你應該添加不便。這樣的:

$('#first_btn').click(); 
+0

看起來就像是行不通的。 – Lucas

+0

我已檢查過:) –

+0

非常感謝您的幫助 – Lucas

1

我假設你沒有注意到,但在jsFiddle代碼jQuery選擇爲第一個按鈕是錯誤的,但你的問題在這裏就可以了,所以我會忽略。

的問題是,您要添加CSS類,但在你的CSS你聲明的按鈕,而不是一類的:active狀態風格,你可以保持這個聲明並添加.active類,所以你的CSS代碼看起來就像這樣:

#first_btn:active, 
#first_btn.active { 
    background-color: yellow; 
} 

並稱類,而不是更換狀態:active),你會涵蓋這兩種情況下,當直接點擊first_btn並單擊second_btn時。

+0

非常感謝您的幫助 – Lucas