2012-02-08 14 views
13

böyle, benim form için etiket kullanıyorum:Bind JavaScript jQuery tıklama etkinlik aynı anda

<label for="foo" id="bar">Label</label> 
<input type="checkbox" id="foo" /> 

Ben bir öğe gizlemek kutunun işaretini kaldırın kullanıcı ve başka türlü göstermek istiyorum .

Sorun, tıklama etkinliğini "foo" ya bağlarsam, yalnızca kullanıcı etiketin kendisinde değil, onay kutusunu tıkladığında çalışır. Bu nedenle, etiket üzerinde bir tıklama etkinliğini de bağlamalı mıyım? Ya da her iki öğeyi bir açıklık içine sokmalı mıyım? HTML'm zaten 2344 öğeyi içeriyor, bu yüzden herhangi bir şey eklemeden ve mümkünse JavaScript kodunu veya seçiciyi iki katına çıkarmaksızın yapmak istiyorum.

cevap

14

yerine click() olayla bağlama, sen change() olayı kullanarak bağlamak gerekir Ancak, bu değişiklik tetiklenirse, sonuç aynı olacaktır:

$('#foo').change(
    function(){ 
     // do whatever 
    }); 

Referanslar:

+0

Tam cevap için teşekkürler! – Willy

+0

Rica ederim; Yardım ettiğim için mutluyum. –

3

change olay inputlabel olsun veya input için tetiklenmesi gereken tıklandığında:

$("#foo").change(function() { ... }); 

Örnekhttp://jsfiddle.net/andrewwhitaker/6LMXW/

+0

Hızlı cevap için teşekkürler! – Willy

+0

@Willy: Sorun değil! Yardım etmekten memnun oldum. –