Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Bind JavaScript jQuery click event on label AND on checkbox simultaneously

I'm using labels for my form, like this :

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

I want to hide an element when the user uncheck the box, and show it otherwise.

The problem is, if I bind the click event to "foo", it'll only works when the user clicks on the checkbox itself and not on the label. Therefore, do I also need to bind a click event on the label ? Or should I enclose both elements within a span ? My HTML already contains 2344 elements, so I'd like to do it without adding anything, and without doubling the JavaScript code or the selector, if possible.

like image 409
Willy Avatar asked Feb 08 '12 15:02

Willy


People also ask

What is the difference between .on click function ()) and .click function?

on('click') event in jquery . on('click') is different from . click(), there it has the capacity to create delegated event handlers by passing a selector parameter, while . click() does not.

Can we use Onclick in label in HTML?

The onclick attribute is part of the Event Attributes, and can be used on any HTML elements.

What is click in jquery?

jQuery click() MethodThe click event occurs when an element is clicked. The click() method triggers the click event, or attaches a function to run when a click event occurs.


1 Answers

Instead of binding with the click() event, you should bind using the change() event, then however this change is triggered the outcome will be the same:

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

References:

  • change().
like image 154
David Thomas Avatar answered Sep 29 '22 05:09

David Thomas