コールバック関数からイベント パラメータにアクセスできない理由を同僚に尋ねられました。呼び出しが終了した後、jquery がイベントを null に設定しているように見え、一時的なローカル変数を作成することで問題が解決したことが判明しました (以下を参照)。
それから、なぜ「メッセージ」がコールバックでも利用できるのか、考えさせられました。誰か説明してくれませんか?
$('some seletor').click({msg: message},function(event){
alert(event.data.msg); //event.data.msg is not available to the json callback because event is null
var message = event.data.msg; //message will be available to the callback...why?
$.getJSON('ajax/test.json', function(data) {
alert(message); //works ok - why is the message variable visible here at all, should it not have gone out of scope when the above function ended?
alert(event.data.msg); //will crash, seems that event has been set to null by the framework after the function finished
});
});