無駄に、ajax呼び出しを成功させるために作成した成功コールバックメソッドに追加のパラメーターを戻せるようにしようとしています。少し背景。動的に作成されたテキストボックスと選択ボックスのペアがいくつかあるページがあります。name="unique-pair-1_txt-url"やname="unique-pair-1_selectBox"などの動的に割り当てられた一意の名前を持つ各ペアの場合、2番目のペアは同じですが、プレフィックスが異なります。
コードを再利用するために、データと選択ボックスへの参照を取得するためのコールバックを作成しました。ただし、コールバックが発生すると、selectboxへの参照は「undefined」として返されます。私はここでそれが実行可能であるべきだと読んだ。'context'オプションを利用しようとしましたが、それでも何もありません。これが私が使おうとしているスクリプトブロックです:
<script type="text/javascript" language="javascript">
$j = jQuery.noConflict();
function getImages(urlValue, selectBox) {
$j.ajax({
type: "GET",
url: $j(urlValue).val(),
dataType: "jsonp",
context: selectBox,
success:function(data){
loadImagesInSelect(data)
} ,
error:function (xhr, ajaxOptions, thrownError) {
alert(xhr.status);
alert(thrownError);
}
});
}
function loadImagesInSelect(data) {
var select = $j(this);
select.empty();
$j(data).each(function() {
var theValue = $j(this)[0]["@value"];
var theId = $j(this)[0]["@name"];
select.append("<option value='" + theId + "'>" + theValue + "</option>");
});
select.children(":first").attr("selected", true);
}
</script>
私が読んだことから、私は近くにいるように感じますが、行方不明のリンクに指を置くことができません。あなたの典型的な忍者のステルスな方法で助けてください。TIA
****更新****ニックは真の忍者です。彼らはそのための新しいバッジを発明する必要があります!以下の彼の答えはトリックを行います。彼が言っているように、それは1.4固有ですが、私はそれで生きることができます。これが、トレーニング中の忍者のために機能する私の最終的なコードです(そして私の将来のリファレンス):
<script type="text/javascript" language="javascript">
$j = jQuery.noConflict();
function getImages(urlValue, selectBox) {
$j.ajax({
type: "GET",
url: urlValue+ '?callback=?',
dataType: "jsonp",
context: selectBox,
success: jQuery.proxy(function (data) {
var select = $j(this);
select.empty();
$j(data).each(function() {
var theValue = $j(this)[0]["@value"];
var theId = $j(this)[0]["@name"];
select.append("<option value='" + theId + "'>" + theValue + "</option>");
});
select.children(":first").attr("selected", true);
}, selectBox),
error:function (xhr, ajaxOptions, thrownError) {
alert(xhr.status);
alert(thrownError);
}
});
}
</script>