簡體   English   中英

Javascript將函數傳遞給參數?

[英]Javascript passing function into parameter?

我使用JQuery對話框,從PHP我可以為按鈕構建一些加載項。 為了能夠從服務器端添加代碼,我通過參數傳遞方法。 問題是FireBug告訴我方法沒有定義:

替代文字

okHandler是此方法調用的參數,用於引發對話框,它包含一個簡單的警報消息,稍后是一些Ajax調用。 知道為什么它不起作用嗎?

替代文字

看起來okHandler是一個包含函數聲明的字符串,而不是實際的函數? 你有

okHandler = "function anonymous(){alert('This is a test');}";

代替

okHandler = function(){alert('This is a test');};

正如John okHandler 所說okHandler似乎是一個字符串。 如果它是一個函數它會更好...但是,如果它必須是一個字符串,那么你需要通過eval()來實際執行它:

eval( "(" + okHandler + ")()" )

是否在收到錯誤時加載了okHandler()函數(作為有效的JS對象 - 而不是String)?

我相信如果foo尚未在某處被聲明為變量,那么調用類似“if(foo!= null)”的東西是不行的。 FireBug會抱怨:“okHandler沒有定義。”

嘗試這樣的事......

var myHandlers = {};
// Load okHandler as a member of myHandlers when applicable here...
$('#dialog'+idbox)...
    "Oky": function() {
        myHandlers.okHandler && myHandlers.okHandler();
        ...
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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