2013-05-27 103 views
0

我有很多DIV在頁面中有多個類,就像這樣。JQuery點擊功能只在當前div

<div class="testlayer"> 
    <label for="test1"><input name="test" id="test1" value="1" class="checkvalue" type="checkbox"></label> 
    <label for="test2"><input name="test" id="test2" value="2" class="checkvalue" type="checkbox"></label> 
    <label for="test3"><input name="teat" id="test3" value="all" class="checkall" type="checkbox"></label> 
</div> 

<div class="testlayer"> 
    <label for="test11"><input name="test" id="test11" value="1" class="checkvalue" type="checkbox"></label> 
    <label for="test21"><input name="test" id="test21" value="2" class="checkvalue" type="checkbox"></label> 
    <label for="test31"><input name="teat" id="test31" value="all" class="checkall" type="checkbox"></label> 
</div> 

還有一個jQuery來取消選中所有其他複選框,如果「所有」 -checkbox檢查和周圍的其他方式。

$(document).ready(function() 
{ 
$(".checkall").click(function() { 
$(".checkvalue").attr('checked', false); 
}); 

$(".checkvalue").click(function() { 
$(".checkall").attr('checked', false); 
}); 
}); 

現在我的問題:如果我在一個testlayer選中一個複選框,在這個類中的所有其它的div複選框改變居留製得。 但我只想在我點擊的複選框所在的當前div上有事件。

我想我必須定義一些與(this),但我不知道如何......對於作爲一個新手到jQuery和thx爲您的幫助感到抱歉。

回答

0

請看看http://jsfiddle.net/YmcqJ/

$(document).ready(function() 
{ 
$(".checkall").click(function() { 
$(this).closest('div').find(".checkvalue").attr('checked', false); 
}); 

$(".checkvalue").click(function() { 
$(this).closest('div').find(".checkall").attr('checked', false); 
}); 
});