我有一个包含两列的表。
假设第一列包含父名称和第二个子名称。默认选择第一个父元素。除了第一个元素,我隐藏了每个父母的孩子。
这是像 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() 设置选择的值时不会触发 jquery 更改事件?
接受的答案说
更改事件需要用户发起的实际浏览器事件,而不是通过 javascript 代码。
有什么解决办法吗?
完整示例:http: //jsfiddle.net/CZZeR/2/