特定のラジオボタンがクリックされたときにdivを開く必要があるかどうかを判断するために、jqueryを使用してajaxリクエストを作成しています。開いたdivを、選択したラジオボタンの直下に表示したい。私はうまくいくと思われる以下のものを持っています:
<script language="javascript">
$(document).ready(function(){
$(".option_select").click(function() {
$(this).next().after($('#show_pop'));
$.ajax({
dataType: 'jsonp',
url: "/jrequest",
data: {
Action: "Do",
Option: po,
},
success: function (response) {
if (response['SomeResponse']) {
$('#show_pop').slideDown("slow");
} else {
$('#show_pop').hide();
}
},
error: function (xmlhttp) {
console.log(xmlhttp);
}
});
}
});
});
</script>
<input type="radio" name="Option1" class="option_select" value="Option1" /> Option 1
<input type="radio" name="Option2" class="option_select" value="Option2" /> Option 2
<input type="radio" name="Option3" class="option_select" value="Option3" /> Option 3
私が理解できないのは、ajaxの「成功」の一部として「後」を実行できないのはなぜですか? たとえば、行を移動すると
$(this).next().after($('#show_pop'));
ここまで:
....
success: function (response) {
if (response['SomeResponse']) {
$(this).next().after($('#show_pop')); // This line does not seem to work here
$('#show_pop').slideDown("slow");
} else {
$('#show_pop').hide();
}
},
....
次に、各オプションの下ではなく、フォームの上に div が開きます。誰かが理由を説明できますか?
ティア!