注意输入的更改
如何在复选框更改时运行函数?
我正在尝试编写小复选框替换函数 – 但我做错了。
码:
(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。