2017-04-04 39 views
3

設置在我的代碼,我在我的複選框來設定變更聽衆這裏試圖調用的onchange方法的jQuery

$(".section").change(function() { 
     if($(this).is(":checked")) { 
     $("." + this.id).show(); 
     ... 

現在我試圖做一個「代碼驅動的」點擊複選框,我有

$(".secTitle").click(function(e) { 
    var elem = this; 
    while(elem) { 
     if (elem.className && elem.className.indexOf ('DOC_SECTION') != -1) { 
     var clzes = elem.className.split(" "); 
     var clzIdx = 1; 
     if (elem.getAttribute('closeSecClassIdx')) { 
      clzIdx = parseInt(elem.getAttribute('closeSecClassIdx')); 
     } 
     var chk = document.getElementById(clzes[clzIdx]); 
     chk.checked = false; 
     alert(chk.onchange); 
     //chk.changed(); 
     break; 
     } 
     else { 
     elem = elem.parentNode; 
     } 
    } 
    }); 

我知道我有正確的元素,因爲chk.checked = false;工作正常。之後,我試圖調用更早的設置,但我的警報顯示'未定義'。

+0

jQuery的不插入任何東西'onchange'當您在事件回調綁定到它! –

+0

你必須觸發'change'事件:http://stackoverflow.com/questions/2490825/how-to-trigger-event-in-javascript – nikoskip

回答

1

您可以通過致電$(chk).change()觸發change事件。下面我創建了一個小樣本,顯示綁定到change事件並調用它。

jQuery(function($) { 
 
    // bind to the change event 
 
    $("input").change(function() { 
 
     console.log('change triggered!'); 
 
    }); 
 
    
 
    // now trigger it 
 
    $("input").change();  
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input type="checkbox" />

+1

這樣做的訣竅:) – ControlAltDel

相關問題