我的jQuery Change功能有问题:
<input type="radio" name="words" value="8" checked><span class="word">word1</span>
<input type="radio" name="words" value="6"><span class="word">word2</span>
$("input[@name='words']:checked").change(function(){
alert("test");
});
问题是当我单击默认选中的第一个选项(值= 8)时,才会触发事件。
如何在点击任何其他选项时触发事件?
请注意:我在Chrome和Firefox上都尝试了上述功能,但我遇到了同样的问题。
谢谢!
答案 0 :(得分:4)
应为$("input[name='words']").change(function(){
答案 1 :(得分:1)
您只将事件处理程序绑定到:checked
元素。因此,当第一个input
具有checked
属性集时,这是唯一接收事件处理程序的属性。删除:checked
,它应该可以正常工作:
$("input[name='words']").change(function(){
alert("test");
});
这是一个working example。请注意,我还从选择器中删除了@
字符。你不需要它,因为像jQuery 1.2或类似的东西。
答案 2 :(得分:1)
$("input[@name='words']:checked").change(function(){
alert("test");
});
您只对已选中的单选按钮(:checked
)订阅了更改功能。从选择器中删除它。
$("input[name='words']").change(function(){
alert("test");
});
答案 3 :(得分:1)
$("input[@name='words']:checked").change(function(){
找到名称为input
的所有words
元素(实际上,它不起作用:自jQuery 1.3以来已删除XPath样式的@
属性选择器)检查并将事件处理程序绑定到它们。如果在进行选择时未检查元素,则不会将事件处理程序绑定到它们。
最简单的解决方案是绑定到所有相关元素,并且只有在取消选中时才会触发代码:
$('input[name="words"]').change(function() {
if (!this.checked) { // checkbox was checked, now is not
alert('unchecked');
}
});
答案 4 :(得分:1)
在jquery中CheckClick()函数
if($('#rb2')。attr('checked')){ 警报('rb2 test'); }
答案 5 :(得分:1)
$("input[name='words']").change(function(){
alert("test");
});