2012-12-30 214 views
0

我试图做一个非常简单的事情,在jQuery中,这是行不通的。jquery&单选按钮

我有这样的单选按钮:

<input type="radio" id="price" name="shipping" class="styled" /> 

在脑子里,我有这样的代码:

$(document).ready(function() { 

$("input[name=shipping]").change(function() { 
    alert("123"); 
}); 

}); 

这有什么错我的代码?

也许这是因为我使用“自定义复选框和单选按钮”? http://ryanfait.com/resources/custom-checkboxes-and-radio-buttons/

+1

[你的代码是OK](http://jsfiddle.net/DwMq7/)。我不知道这个插件。你有没有'class = style'的尝试?你在脚本之前导入jQuery **吗? –

+0

我认为插件在无线电上绑定事件;)我是正确的插件绑定事件单选按钮 –

+1

我不认为插件会删除现有的绑定(jQuery使用addEventListener并不删除现有的) 。这将使它无用。 –

回答

0

我看了一下你导入的脚本。

它看起来非常过时,它包含了像

inputs[a].onchange = Custom.clear; 

这将删除您之前添加的事件侦听器的东西。

我的建议是,在偏好顺序:

  1. 删除这个插件,它很可能只对静态页面制作
  2. 把你自己的脚本,在身体的末端,而不是水箱内
+0

请参阅我上面的评论。 – user1936192

+0

@ user1936192我编辑了我的答案。 –

0

你的代码看起来没问题。 JS-BIN Demo 确保您的单选按钮给同一个名字:

<div> 
    <input type="radio" id="price1" name="shipping" class="styled" /> 
    <input type="radio" id="price2" name="shipping" class="styled" /> 
</div> 

而且你的代码将工作。

另一种方法是用点击来代替变化:

$(document).ready(function() { 
$("input[name=shipping]").click(function() { 
    alert("123"); 
}); 
}); 
+0

请看我上面的评论..谢谢 – user1936192

1

你的代码是正确的,但也许问题是从另一个地方。

请与firebug控制台

0

试试这个

$(document).delegate("input[name=shipping]", "change", function() { 
    alert('abc'); 
});