我喜歡範圍內的所有的我的jQuery函數和事件匯$ jQuery的功能(窗口).load,就像這樣:
$(window).load(function()
{
function Foo(id)
{
alert(String.format("Do Foo for: {0}", id));
}
});
通常情況下,我在這個範圍內完成所有工作,但我有一個案例,我想從由獨立JQuery小部件構建的HREF調用Foo(27)。 HREF看起來像這樣:
<a href="javascript:Foo(27)">Click me!</a>
但是,當我單擊鏈接時沒有找到Foo()函數。我怎麼能這樣做?
[編輯]
所以,我剛剛接受了下面的答案,並希望分享我的最終實現。 Foo()已被替換爲我正在使用的實際方法的名稱。是的,我知道String.format()本身不存在;它是我自己的基礎庫的一部分。記住這一點,這就是我所擁有的。這是來自我定義所有全局名稱空間的文件。這個定義存在於jQuery範圍之外。
// This is defined in the global namespace
if (typeof (window.App) === "undefined")
{
window.App = {};
}
下面是構建HREF的jQuery構件的一行。標題是預測,而HREF導航到詳細信息頁面預測:
r = String.format('<a href="javascript:App.NavDetails({1});" class="link3">{0}</a>',
Predikt.General.EncodeHtml(options.rowData.Title),
options.rowData.PredictionId);
而這裏的實際執行NavDetails功能在我的$(窗口).load() - 範圍的jQuery的文件:
$(window).load(function()
{
App.NavDetails = function (id)
{
// Do something interesting with the ID here...
alert(String.format("The ID is: {0}", id));
};
});
在javascript中沒有'String.format'。也請詳細說明你想在加載時傳遞給'Foo'? – naveen 2011-06-05 05:29:47