注意输入的更改

如何在复选框更改时运行函数?

我正在尝试编写小复选框替换函数 – 但我做错了。

码:

(function($) { $.fn.checking = function() { if ($('.checbox').prop('checked', false) === true) { $('.new-checkbox').prop('id', 'unchecked'); } else { $('.new-checkbox').prop('id', 'checked'); } }; })(jQuery); $(document).ready(function() { $('.checkbox').wrap('
'); $('.checkbox-wrapper').append('

Blue = Checked, Red = Unchecked

'); $('.checkbox').checking(); $('.checbox').bind('change', function() { $(this).checking(); }); });

PlayGround: 现场演示

你的脚本中有一些拼写错误和错误。

 if($('.checbox').prop('checked', false) === true) // ^ ^^^^^^^^^^^^^^^^^ 

应该

 if(this.prop('checked')) 

if($('.checkbox').prop('checked'))当然也会工作,但为什么再次选择元素,如果你已经把它作为一个插件并且元素可以通过this

 $('.checbox').bind('change', function(){ // ^ 

应该

 $('.checkbox').bind('change', function(){ // ^ 

工作演示: http : //jsfiddle.net/fkling/yGBAK/40/

也就是说,添加和删除类比更改元素的ID更好(更合乎逻辑)。

这是你想要的吗? 我的印象是你的事情过于复杂。

 $('input[type="checkbox"]').change(function() { alert ("The element with id " + this.id + " changed."); }); 
 $('.checkbox').change(function(){ alert('changed'); }) 

我使用了你在复选框(.checkbox)上放置的课程。 它检测复选框状态的变化(这也适用于其他输入)

示例中包含单击或未单击复选框的警报“已更改”。

如果您想知道每次是否检查:

 $('.checkbox').change(function(){ if($(this).is(':checked')){ alert('checked'); } else { alert('not checked'); } }); 

试试这个:

 $('input[type=checkbox]').change(function() { alert("I'm changed!"); }); 

要么

 $('input[type=checkbox]').change(function() { if ($(this).is(':checked')) { alert('I\'\m --> checked'); } else { alert('I\'\m --> unchecked'); } }); 

在您的示例中,选择器使用checbox,应为“.checkbox”

我修改了你的例子,所以它的工作原理: http : //jsfiddle.net/yGBAK/41/

我交换了元素的ID。