jQueryで、ajax使ってXMLを読みこみsuccessの時のコールバック関数に、別のJSファイルで定義している名前付き関数 myfuncに引数付きで処理させたい。
名前付き関数に、関数をreturnさせるってのが解決法のポイントですね。
こういう風に書いたら、動かなかった。
var number = "100"; $.ajax({ type: 'GET', url: 'URL', contentType: 'xml', success: myfunc( number ) }); function myfunc ( number ) { ... }
動いたコード
名前付き関数に、無名関数を返す形で使えます。
どうしてこういうのを書いたか忘れてしまいましたが、この例でいうところのnumber変数を動的に代入してmyfunc()ないの条件分岐などに使いたかったのだと思います。
また、success:myfunc( number) のnumberは取得したxmlじゃないのがミソです。
ajaxで取得したxmlは無名関数のxmldataに入っています。
var number = "100"; $.ajax({ type: 'GET', url: 'URL', contentType: 'xml', success: myfunc( number ) }); function myfunc ( number ) { //ここでもnumber利用可能 return function ( xmldata ) { //ここでもnumber利用可能 console.log ( number+"is one hundred" ); //xmldataはajaxで呼んで帰ってきたデータ xmldata 処理 } }