我在实现自我替换脚本时遇到了麻烦。我承认我非常困惑。
我正在尝试实现两个按钮,如果您单击一个按钮,则会向服务器发送POST请求;服务器验证您确实转到此网页并将HttpResponseRedirect发送回包含不完整网页/页面的页面,该页面在单击按钮后仅包含我想要更新的部分。一旦我的原始jQuery请求收到该新页面,它将使用刚收到的新页面替换当前页面上的元素。
我的jQuery看起来像:
<script id="self_replacing">
$(document).ready(function() {
$('#button1').click(function(){
$.post("/", {
unique_id : "{{ unique_id }}",
csrfmiddlewaretoken: '{{ csrf_token }}'
},
function(data){
var js_portion = $('<div/>').html(data).find('self_replacing')
var html_portion = $('<div/>').html(data).find('pic_content')
$('#pic_content').replaceWith(html_portion)
$('#self_replacing').replaceWith(js_portion)
});
});
});
</script>
不完整的页面:
<script id="self_replacing">
$(document).ready(function() {
$('#button1').click(function(){
$.post("/", {
unique_id : "{{ unique_id }}",
csrfmiddlewaretoken: '{{ csrf_token }}'
},
function(data){
var js_portion = $('<div/>').html(data).find('self_replacing')
var html_portion = $('<div/>').html(data).find('pic_content')
$('#pic_content').replaceWith(html_portion)
$('#self_replacing').replaceWith(js_portion)
});
});
});
</script>
<div id="pic_content">
.
.
</div>
我有正确的想法吗?当我通过FireBug控制台观察我的请求时,每次单击按钮时流量都会开始向上扩展。
例如,在开始时,它有1次点击= 1次POST 然后单击= 2POST,然后单击= 3 POST。我不太清楚为什么会这样。我的jQuery脚本有问题吗?
注意:每次POST后都需要更新jQuery脚本。