2013-03-18 25 views
1

我創建了一個複選框動態和當onclick函數執行我得到'該函數是未定義的'在控制檯中的錯誤。在逐步執行時,將在頁面加載事件期間讀取代碼,但單擊時會引發錯誤。我試過將函數加載到$(document).ready();但得到相同的錯誤:js動態創建複選框沒有定義的點擊功能

*這些函數在頁面加載時調用的函數內。 'chkBox' 是未定義功能

function lyrBuild(lyrVar, lyrName) { 
    $('<li>').attr({ 
     id: lyrVar.liID, 
     class: 'layer' 
    }).html($('<input>').attr({ 
     id: lyrVar.cbID, 
     type: 'checkbox', 
     onClick: "chkBox(" + "'" + lyrVar.liID + "'" + ")", 
     checked: 'unchecked', 
     name: lyrVar.Name, 
     value: lyrVar.val 
    })).appendTo('#layersList'); 
} 

function chkBox(lyrId) { 
    //switch statement goes here 
} 
+3

確保您將'chkBox'定義放在'document.ready'閉包之外。否則它變成本地範圍功能,並且不能全局訪問。 – dfsq 2013-03-18 15:21:51

回答

0

你沒有問題,但我給你一個答案反正;)

「這些功能在函數內「,這意味着當你這樣調用時,chkBox不可用。如果可能的話,使用.click(),doc here.on(),或將chkBox放在函數的外部。

0

嘗試宣告dhkBox功能,如:

var chkBox = function(lyrId) { 
    //switch statement goes here 
} 
+0

這很有趣,我會用我的代碼的另一部分來嘗試這個。這是將函數變成一個變量。我喜歡這裏的目標。謝謝! – atlMapper 2013-03-18 15:59:42