2012-12-30 283 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'); 
});