2011-01-07 22 views

Odpowiedz

6

Cóż, najprostszym sposobem byłoby umieszczenie etykiety wokół obrazu. To zrobi dokładnie to, co chcesz:

<label for="img1"><img class="img" src="http://s5.tinypic.com/30v0ncn_th.jpg" /></label> 
<input type="checkbox" class="chk " checked="checked" id="img1" name="img1" value="0" /> 

Nie wymaga javascript! Będziesz musiał usunąć swój kod id="img1" ze znacznika <img>, ponieważ nie możesz mieć więcej niż jednego elementu o tym samym identyfikatorze.

1

Jak już odpowiedzieli powyżej, nie trzeba tego robić poprzez javascript, jeśli jesteś ciekawy jak dołączyć obsługę zdarzenia do obrazu. Musisz zmienić identyfikator pola wyboru na coś innego niż identyfikator obrazu. I przemianowany go chk2

document.getElementById('img2').onclick = function() //attach to onclick 
{        
     var checkbox = document.getElementById('chk2'); //find checkbox 

     checkbox.checked = !checkbox.checked; //toggle the checked status 
} 
1

z jQuery jest to dziecinnie proste:

$('img').click(function(){ 
    $(this).next().click(); 
}) 

bez, staje się nieco trudniejsze. Dałem swoje pola wyboru unikalnego identyfikatora użytkownika (img1_cb i img2_cb) i dodano do obsługi kliknij, aby każdy obraz np

<img class="img" src="http://s5.tinypic.com/30v0ncn_th.jpg" id="img1" onclick="toggle('img1_cb')" /> 

Wtedy JavaScript brzmiała:

function toggle(what){ 
    var cb = document.getElementById(what); 
    cb.checked = !cb.checked; 
} 
Powiązane problemy