我試圖將一個函數綁定到錨點「onclick」屬性。我沒有使用傳統的jQuery的bind/live/on/whatever,因爲我有一些其他腳本可以阻止事件傳播(這很糟糕,我知道)。將函數綁定到其他作用域上的onClick
到功能綁定到「點擊」屬性,我傳遞一個JSON對象模塊是這樣的:
function foo() {
alert('foo')
}
$('document').ready(function() {
var options = {
opt1: 'fooID',
opt2: 'barID',
json: mightyJSON,
actions: [
{ url: 'contact/_id_/edit', text: "Edit", iconPath: 'edit.png' },
{ url: '#', onClick: foo, text: "Delete", iconPath: 'delete.png' }
]
};
var trolol = myModule.configure(options);
});
正如你可以看到一個名爲「foo」的傳遞函數通過「的onClick 「JSON的財產。該函數定義在對象的上方。
在「MyModule的」我創建錨標記是這樣的:
var buildLinks = function(objectID)
{
var linksNbr = actions.length;
var link, cssClass;
for (var i = 0; i < linksNbr; i++)
{
// Adding the object ID to the URL
link = actions[i].url.replace('_id_', objectID);
cssClass = actions[i].cssClass || '';
var $link = $(document.createElement('a')).attr('onClick', actions[i].onClick)
.attr('href', link)
.attr('title', actions[i].text)
.addClass(cssClass)
.text('foo');
}
return $link.html();
};
的事情是,你可以期待當腳本解析,只存在執行「富」。 「onclick」甚至沒有工作。
我可以像這樣通過onClick: 'foo()'
。 onclick工作,但它也執行解析,在我看來,它非常醜陋。
我想還是能夠通過像這樣onClick: foo
但正常工作(即未在加載執行,但只有點擊時。
它使用jQuery 1.4.4遺憾的是工作。
嗨,你可以請張貼這個HTML,我們可以試試這個?或者你可以在http://jsfiddle.net/上發表小提琴嗎?這是更容易編碼,然後給你一個解決方案:) – TWickz 2012-08-06 08:37:38
你真的需要傳遞'.html()',而不僅僅是創建的元素? – Alnitak 2012-08-06 08:39:55
將它作爲[actions [i] .onClick]() – TWickz 2012-08-06 08:44:32