假設我點擊任意按鈕時有100個按鈕我想更改除點擊按鈕之外的其餘99個按鈕的顏色。如何實現這一目標?將點擊事件處理程序添加到所有100個按鈕並不是我想的一個好主意。請告訴我不同的方式來實現這一點。謝謝。單擊按鈕時改變剩餘按鈕的顏色
0
A
回答
0
爲什麼不這樣做
$(document).on('ready',function(){
$('button').click(function() {
$('button').css('background', 'red');
$(this).css('background','none');
});
});
這似乎更容易
2
這是怎麼回事? (http://jsfiddle.net/nw77tgya/)
關閉當然你可以調味的代碼。您可以使用類別選擇器替換「按鈕」選擇器,以縮小您對按鈕的選擇範圍。
你也可以改變CSS添加和刪除類和做其他的東西。
這個例子應該讓你的方式,雖然;)
$(document).on('ready',function(){
$('button').click(function() {
$('button').not($(this)).css('background', 'red');
$(this).css('background','none');
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button>A Button</button>
<button>A Button</button>
<button>A Button</button>
<button>A Button</button>
<button>A Button</button>
<button>A Button</button>
<button>A Button</button>
0
你可以用香草JS做到這一點,是這樣的:
var buttons = document.querySelectorAll('button');
[].forEach.call(buttons, function(btn) {
btn.addEventListener('click', function() {
var clickedButton = this;
[].forEach.call(buttons, function(innerBtn) {
if (innerBtn !== clickedButton) {
innerBtn.classList.add('green');
}
else {
innerBtn.classList.remove('green');
}
});
});
});
.green {
background:green;
}
<button>Button</button>
<button>Button</button>
<button>Button</button>
<button>Button</button>
<button>Button</button>
<button>Button</button>
<button>Button</button>
<button>Button</button>
<button>Button</button>
<button>Button</button>
<button>Button</button>
或者,在短的jQuery:
var buttons = $('button').click(function(){
buttons.not(this).addClass('green');
$(this).removeClass('green');
});
.green {
background:green;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button>Button</button>
<button>Button</button>
<button>Button</button>
<button>Button</button>
<button>Button</button>
<button>Button</button>
<button>Button</button>
<button>Button</button>
<button>Button</button>
<button>Button</button>
<button>Button</button>
0
在HTML創建按鈕並添加class-name
或new attribute
,使在寫selector
Jquery的容易。
<button class="test">button1</button>
<button class="test">button2</button>
<button class="test">button3</button>
通過定義selector
選擇Jquery的所有元素和CSS添加到除了當前元素的所有元素。 爲了使它在第二次點擊的工作,我們應該重置當前元素
$(".test").click(function(){
$(this).css("background-color", "");
$(".test").not($(this)).css("background-color", "red");
});
1
的CSS這裏有一個簡單的JavaScript解決方案。 它會查找與提供給querySelectorAll
的選擇器相匹配的所有元素,遍歷它們,如果它們不是被點擊的按鈕 - e.target
- 它會將它們的類設置爲您在某處設置的某個對象。
如果你的按鈕不上課:
button.addEventListener('click', function(e) {
e.target.className = ''
[].forEach.call(document.querySelectorAll('button'), function(b) {
if (b !== e.target) {
b.className = 'other-color'
}
})
})
如果你的原始類是 '純按鈕':
button.addEventListener('click', function(e) {
e.target.className = 'plain-button'
[].forEach.call(document.querySelectorAll('.plain-button'), function(b) {
if (b !== e.target) {
b.className = 'plain-button other-color'
}
})
})
相關問題
- 1. 單擊時更改按鈕顏色(多次單擊/顏色)
- 2. 單擊按鈕時更改按鈕顏色
- 3. 點擊按鈕改變ImageView的顏色?
- 4. 點擊按鈕顏色沒有改變
- 5. 如何在按下按鈕時改變按鈕的顏色
- 6. 按下按鈕時改變按鈕的顏色
- 7. 改變按鈕顏色
- 8. 按鈕顏色不改變
- 9. C# - 單擊時改變相鄰的按鈕顏色
- 10. 單擊ajax時替換按鈕顏色
- 11. 更改按鈕點擊按鈕顏色暫時在C#
- 12. 單擊按鈕時按鈕背景顏色未更新
- 13. 試圖在單擊按鈕時轉換按鈕顏色as3
- 14. 使用ng-click單擊其他按鈕時的按鈕顏色變化
- 15. 更改點擊按鈕的顏色
- 16. setBackgroundColor改變了更多的顏色,然後單擊按鈕
- 17. Android ...單擊時更改按鈕顏色,但我有許多按鈕?
- 18. Xcode - 更改按鈕上的按鈕背景顏色點擊
- 19. 單擊編輯按鈕時更改單元格顏色
- 20. 的Android按鈕的背景顏色改變按鈕的大小
- 21. Swift:點擊時改變按鈕的顏色
- 22. 如何改變點擊時的按鈕顏色
- 23. 更改顏色的按鈕
- 24. 點擊更改javafx按鈕顏色?
- 25. 如何更改顏色點擊按鈕?
- 26. 點擊更改按鈕顏色
- 27. 按鈕標籤顏色改變之後單擊IOS
- 28. 單擊時更改按鈕的背景顏色
- 29. 如何使用引導單擊時更改按鈕的顏色?
- 30. 如何在WP7中單擊時更改按鈕的顏色?
請提供您的公司在問題中。 – VisioN
有沒有幫助你的答案?你在尋找其他的英特爾? –