2016-06-12 121 views
0

我有這個輸入:使用Javascript - 「不是一個功能」參數添加到功能

<input type="checkbox" id="test_checkbox" onchange="fffunction(this)" /> Something 

經過檢查/取消選中該複選框被稱爲fffunction功能:

function fffunction(checked_value) { 
    if(checked_value.is(":checked")){ 
    console.log("checked"); 
    } else {    
    console.log("not checked"); 
    } 
} 

這返回錯誤checked_value.is is not a function。如何檢查傳遞的屬性是否是一個函數?如何使用參數?

如果我這樣做:

function fffunction(checked_value) { 
     if($('#test_checkbox').is(":checked")){ 
     console.log("checked"); 
     } else {    
     console.log("not checked"); 
     } 
    } 

一切的工作......如何使用參數壽的,而不是調用函數內部直接ID HTML元素?

預先感謝您。

回答

2

您試圖在原始DOM元素上使用jQuery函數。要做到這一點,你必須把它包在一個jQuery實例第一:

function fffunction(checked_value) { 
    if($(checked_value).is(":checked")){ 
// ^^-------------^---------------------- note 
    console.log("checked"); 
    } else {    
    console.log("not checked"); 
    } 
} 

這是直接包裹元素,而不是由ID去。


當然,我們沒有理由在這種特殊情況下使用jQuery,只是使用元素的本地checked屬性:

function fffunction(checked_value) { 
    if(checked_value.checked){ 
    console.log("checked"); 
    } else {    
    console.log("not checked"); 
    } 
}