我正在使用 jquery 发出 ajax 请求,以确定单击特定单选按钮时是否应该打开 div。我希望打开的 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 只是在我的表单上方打开,而不是在每个选项下方。有人可以解释为什么吗?
蒂亚!