我想創建兩個子div,其中任何一個單擊時都會給「toggler」類的子div賦予一個「高亮」類。我正在創建一個「觸發器」選擇器變量,它包含「觸發器」類。然而,考慮到下面的代碼,這兩個子div都被賦予了「highlight」類,而不是僅僅是選擇器變量被設置爲保存的「toggler」類。jQuery兒童方法返回意外的結果
HTML:
<div class="parent_div">
<div class="first_child">
First Child Text
</div>
<div class="toggler">
Toggler
</div>
</div>
CSS:
.parent_div > div {
display: inline-block;
float: left;
clear: both;
}
.parent_div > div:hover {
cursor: pointer;
}
.highlight {
background-color: yellow;
}
的jQuery:
$(document).ready(function() {
var toggler = $('.toggler');
var eitherChild = $('.first_child, .toggler');
eitherChild.click(function() {
var thisParent = $(this).parent();
thisParent.children(toggler).toggleClass('highlight');
});
});
小提琴來顯示結果:http://jsfiddle.net/bronzegate/5yTBP/
改變了jQuery的followi NG產生期望的結果:
$(document).ready(function() {
var eitherChild = $('.first_child, .toggler');
eitherChild.click(function() {
var thisParent = $(this).parent();
thisParent.children('.toggler').toggleClass('highlight');
});
});
小提琴來顯示結果:http://jsfiddle.net/bronzegate/ZS8P5/
爲什麼兒童方法在前者的情況下選擇這兩個孩子,而不是隻在中定義的孩子「觸發器「選擇器變量?