1

次のjQuery 1.7.2コードがあります。

var theParams = encodeURIComponent(s1)+encodeURIComponent(s2);
$.post('/myURL',theParams,processData).error(errorResponse);
function processData(data,textStatus){
    blah blah;
}// end processData
function errorResponse() {
    blah blah;
}

このコードは、Safari 6 (Mac)、Chrome 21 (Mac)、Safari (iPad)、Chrome (iPad) では問題なく動作しますが、FF 14 (Mac) では次のエラーが表示されます。

ReferenceError: processData is not defined

奇妙なことに、(別のページからの) 同様のコードが FF でも問題なく動作します。

var formData = $(form).serialize();
$.post('/myURL',formData,processData).error(errorResponse);
function processData(data,textStatus) {
    blah blah;
}// end processData
function errorResponse() {
    blah blah;
}

関数の名前を変更しようとしましたが、同じ未定義エラーが発生します。これをデバッグするには何を探すべきですか?

4

2 に答える 2

0

コードを並べ替えてみてください

var processData, errorResponse, theParams;
processData = function (data,textStatus){
    //blah blah;
};
errorResponse = function () {
    //blah blah;
};
theParams = encodeURIComponent(s1)+encodeURIComponent(s2);
$.post('/myURL',theParams,processData).error(errorResponse);

これはあなたのために働きますか?

encodeURIComponent機能もご提供いただけますか?

于 2012-08-29T09:59:16.693 に答える
0

1行目の後にこの行を追加してみてください。

theParams = encodeURIComponent(theParams);

あなたのencodeURIComponent関数はこれだと思います。

于 2012-08-29T10:03:08.447 に答える