簡體   English   中英

選中元素上的單選按鈕更改事件

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM