jQuery / Ajax – $ .ajax()传递参数callback – 良好的模式使用?

我开始的JavaScript代码:

function doSomething(url) { $.ajax({ type: "GET", url: url, dataType: "xml", success: rssToTarget }); } 

我想用的模式:

 //where elem is the target that should receive new items via DOM (appendChild) function doSomething(url, elem) { $.ajax({ type: "GET", url: url, dataType: "xml", success: rssToTarget(elem) }); } 

我不认为我可以通过这种方式获得callback,对吗? 什么是正确的模式? 我不想使用全局variables来临时保存elem或elem的名字。

喜欢这个…

 function doSomething(url, elem) { $.ajax({ type: "GET", url: url, dataType: "xml", success: function(xml) { rssToTarget(xml, elem); } }); } 

回答你的评论: 使用匿名函数是否会影响性能?

如果您在rssToTarget函数中创build一个闭包 ,您想要使用的模式可以工作:

 function rssToTarget(element) { return function (xmlData) { // work with element and the data returned from the server } } function doSomething(url, elem) { $.ajax({ type: "GET", url: url, dataType: "xml", success: rssToTarget(elem) }); } 

rssToTarget(elem)被执行时,元素参数被存储在闭包中 ,callback函数被返回,等待被执行。