我有一個jQuery投票腳本,它允許用戶對頁面上顯示的投票進行投票。在特定的頁面上顯示了很多民意調查(通過表單),jQuery以特定的形式抓取輸入的值,並將數據發送到query.php頁面。jQuery:ajax內容加載錯誤div類
這是一個樣本調查頁面的樣子:
QUESTION 1:<br />
<div class="poll_area">
<div id="poll">
<form method="POST" action="" class="poll_query">
<input type="hidden" value="favorites" name="page" />
<input type="hidden" value="user1" name="to" />
<input type="hidden" name="pid" value="1"/>
<input name="" type="radio" value="yes" /> Yes<br />
<input name="" type="radio" value="no" /> No<br />
</form>
</div>
<div class="result"> </div>
</div>
QUESTION 2:<br />
<div class="poll_area">
<div id="poll">
<form method="POST" action="" class="poll_query">
<input type="hidden" value="favorites" name="page" />
<input type="hidden" value="user2" name="to" />
<input type="hidden" name="pid" value="2"/>
<input name="" type="radio" value="yes" /> Yes<br />
<input name="" type="radio" value="no" /> No<br />
</form>
</div>
<div class="result"> </div>
</div>
這是jQuery的腳本我運行:
var ajax_load = "<img src='images/ajax-loader.gif' alt='loading...' />";
$("form.poll_query > input[type='radio']").click(function(e) {
e.preventDefault();
var form= $(this).closest("form");
var pid = $("input[name='pid']", form).val();
var ans = $(this).val();
var page = $("input[name='page']", form).val();
var to = $("input[name='to']", form).val();
$(this).closest("#poll").html(ajax_load);
$.post(
"query.php?module=vote",
{answer: ans, pid: pid, to: to, page: page},
function(responseText){
$("#poll").hide(0,function() {
$(".result").html(responseText).fadeIn(1500);
});
},
"html"
);
});
當第一次民意測驗投票的一切正確呈現。返回的'responseText'顯示在它應該在的頁面中。但對於頁面上的每個後續輪詢,'ajax_load'都會正確加載它的位置,但'responseText'會加載到FIRST輪詢的.result類中。
這就是頁面最初的樣子:
Question 1?
o YES
o NO
Question 2?
o YES
o NO
如果問題2特定的用戶投票,這是頁面應該是什麼樣子:
Question 1?
o YES
o NO
Question 2
o YES : XXXXXXXXX 60%
o NO : XXXXXX 40%
這實際上是實際發生的事情(即使用戶在問題2上投票):
Question 1?
o YES : XXXXXXXXX 60%
o NO : XXXXXX 40%
Question 2
o YES
o NO
但是,如果用戶在問題1上投票,結果是否正確裝入:
Question 1?
o YES : XXXXXXXXX 60%
o NO : XXXXXX 40%
Question 2
o YES
o NO
我試圖改變$(".result").html(responseText).fadeIn(1500);
到$(this).closest(".result").html(responseText).fadeIn(1500);
但仍沒有運氣。