国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

JQuery觸發radio或checkbox的change事件

2024-05-06 14:20:25
字體:
來源:轉載
供稿:網友
早上要做一功能,checkbox被選中時,顯示隱藏的層,取消選中時,再隱藏選中的層。
初始代碼如下:
代碼如下:
$(function(){
$("#ischange").change(function() {
alert("checked");
});
});

搗騰了半天,竟然一點反應都沒有。百度了下,有高人指出上面幾行代碼在Firefox等瀏覽器中可以正常運行,即你選中復選框或取消復選框都會彈出一個對話框,但是在IE中卻不會正常執行,即選中或取消復選框不會立即彈出對話框。

必須在選中或取消復選框之后再點擊除了復選框之外的任何一個地方,據說是因為IE會等到復選框失去焦點之后才會觸發change事件。
改進之后的代碼如下:
代碼如下:
$(function(){
if ($.browser.msie) {
$('input:checkbox').click(function () {
this.blur();
this.focus();
});
};
$("#ischange").change(function() {
alert("checked");
});
});

補充:當改變復選框的值后,IE在等待失去焦點,但是click事件是立即觸發的,因此利用click事件讓復選框失去焦點,這樣就會觸發chang事件了,然后再把焦點重新轉移到該復選框上。
如果是radio,將checkbox換成radio即可。

在JQuery中,當給radio或checkbox添加一個change事件時,如果它的值發生變化就會觸發change事件,就如同我們在 HTML中寫入下代碼:
代碼如下:
<input type="checkbxo" id="testCheckbox" onchange="myfunction()"name="fruits">,

而我們用JQuery的代碼如下:
代碼如下:
$(document).ready(function(){
$("testCheckbox").change(function() {
alert("Option changed!");
});
});

以上代碼在Firefox等瀏覽器中可以正常運行,即當你選中復選框或取消復選框都會彈出一個對話框,但是在IE中卻不會正常執行,即你選中或取消復選框不會立即彈出對話框,你必須在選中或取消復選框之后再點擊除了復選框之外的任何一個地方,之所以這樣,據說是因為IE會等到復選框失去焦點之后才會觸發change事件,目前這個問題還沒有被修復,不過網上有高人已經提供了解決方案:
代碼如下:
$(function () {if ($.browser.msie) {$('input:checkbox').click(function () { this.blur(); this.focus(); }); }});

以上代碼只要把checkbox就可以適用于radio, 以上代碼的原理是:當改變復選框的值后,IE在等待失去焦點,但是click事件是立即觸發的,因此利用click事件讓復選框失去 焦點,這樣就會觸發chang事件了,然后再把焦點重新轉移到該復選框上。有人可能會問為什么不直接用click事件來代替change事件,對于checkbox來說,click事件和change都可以完成同樣的功能,但是對于radio來說就不一樣了,你可以連續點擊同一個radio而值不變,這時就會不停的觸發click事件而不會觸發change事件。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 施秉县| 稻城县| 定州市| 项城市| 中卫市| 吉林市| 漾濞| 花垣县| 浦城县| 奎屯市| 遵化市| 栾川县| 信阳市| 汪清县| 利津县| 霍山县| 钟祥市| 宣武区| 邻水| 寿宁县| 银川市| 岳西县| 家居| 桦南县| 达州市| 萨迦县| 镇康县| 紫阳县| 冷水江市| 牟定县| 巴南区| 吐鲁番市| 马龙县| 墨竹工卡县| 宕昌县| 江津市| 乐山市| 阿城市| 龙口市| 东乌珠穆沁旗| 略阳县|