[英]Radio button change event on checked element
我有一個包含兩列的表。
假設第一列包含父名稱和第二個子名稱。 默認情況下選擇第一個父元素。 除了第一個元素,我隱藏了每個父母的孩子。
這是像Accordion一樣工作的代碼(一次只能看到一個):
$(document).ready(function() {
var childs = $('.tableCellWBorderGray > div'); // child divs
childs.hide();
$("input:radio[name=attribute]").change(function(){
var parent = $(this).parent().next(); // In our case, second td
var kids = parent.children();
childs.slideUp('slow');
kids.slideDown('slow');
});
// select first element and trigger change event to show childs.
$('input:radio[name=attribute]:nth(0)').attr('checked',true).trigger('change');
});
這適用於所有其他瀏覽器。
但在IE中使用Document Mode: IE7 Standards
當我點擊第一個選中的元素時, change
將被觸發。 雖然這只發生一次如果我單擊選中的元素。 我想阻止它。
我已經研究了為什么當我使用val()設置select的值時,jquery更改事件不會觸發?
接受的答案說明了這一點
更改事件需要用戶發起的實際瀏覽器事件,而不是通過javascript代碼。
有什么工作嗎?
完整示例: http : //jsfiddle.net/CZZeR/2/
您必須覆蓋attr函數以觸發更改事件
碼:
$(function() {
var $attrFn = $.fn.attr;
$.fn.extend({
attr: function() {
var attrCatch = $attrFn.apply(this, arguments);
if (arguments.length) {
$(this).change();
}
return attrCatch;
}
});
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.