Re: [jQuery] How to bind a function only once

2006-10-18 Thread John Resig
Hi Brian -

Here is how I would change your code:

$('[EMAIL PROTECTED]').click(function(){
$('#label').unbind('change');

if ( $("[EMAIL PROTECTED]'label_checkbox']:checked").length )
$('#label').bind('change', function(){
alert('test');
});
});

By making it such that the change event is always unbound from the
select, when a checkbox changes, you're guaranteed to never have more
than one bound at a time. Hope this helps.

--John

On 10/18/06, Brian Litzinger <[EMAIL PROTECTED]> wrote:
>
> I have a group of checkboxes, and as long as any one of the boxes is checked
> I need a function bound to a select list, but anytime none of the boxes are
> checked I need the function unbound. What I have below binds and unbinds,
> but if I select lets say 4 checkboxes the function is bound and called 4
> times when I change my select list. How do I just bind it once?
>
> $('[EMAIL PROTECTED]').click(function(){
> if($("[EMAIL PROTECTED]'label_checkbox']").is(":checked")) {
> $('#label').bind('change', function(){
> alert('test');
> });
> } else {
> $('#label').unbind('change');
> }
> });
> --
> View this message in context: 
> http://www.nabble.com/How-to-bind-a-function-only-once-tf2466835.html#a6876978
> Sent from the JQuery mailing list archive at Nabble.com.
>
>
> ___
> jQuery mailing list
> discuss@jquery.com
> http://jquery.com/discuss/
>


-- 
John Resig
http://ejohn.org/
[EMAIL PROTECTED]

___
jQuery mailing list
discuss@jquery.com
http://jquery.com/discuss/


Re: [jQuery] How to bind a function only once

2006-10-18 Thread Dave Methvin

> I have a group of checkboxes, and as long as any one of
> the boxes is checked I need a function bound to a select
> list, but anytime none of the boxes are checked I need the
> function unbound. What I have below binds and unbinds,
> but if I select lets say 4 checkboxes the function is bound
> and called 4 times when I change my select list. How do
> I just bind it once?
>
> $('[EMAIL PROTECTED]').click(function(){
>   if($("[EMAIL PROTECTED]'label_checkbox']").is(":checked")) {
>   $('#label').bind('change', function(){
>   alert('test');
>   });
>   } else {
>   $('#label').unbind('change');
>   }
>   });

I would bind the event once, then look at the check boxes when the event
occurs. 

$('#label').bind('change', function(){
if($("[EMAIL PROTECTED]'label_checkbox']").is(":checked")) {
alert('test');
}
});


___
jQuery mailing list
discuss@jquery.com
http://jquery.com/discuss/


[jQuery] How to bind a function only once

2006-10-18 Thread Brian Litzinger

I have a group of checkboxes, and as long as any one of the boxes is checked
I need a function bound to a select list, but anytime none of the boxes are
checked I need the function unbound. What I have below binds and unbinds,
but if I select lets say 4 checkboxes the function is bound and called 4
times when I change my select list. How do I just bind it once?

$('[EMAIL PROTECTED]').click(function(){
if($("[EMAIL PROTECTED]'label_checkbox']").is(":checked")) {
$('#label').bind('change', function(){
alert('test');  

});
} else {
$('#label').unbind('change');
}
});
-- 
View this message in context: 
http://www.nabble.com/How-to-bind-a-function-only-once-tf2466835.html#a6876978
Sent from the JQuery mailing list archive at Nabble.com.


___
jQuery mailing list
discuss@jquery.com
http://jquery.com/discuss/