我有一個表包含幾行,其中每行表示一個可導出的文件,摹: 使用jQuery的每個打開下載窗口()
<tr>
<th class="text-center" scope="row">
<input id="exportID-23" type="checkbox" />
</th>
<td class="text-center text-nowrap">2016-08-24</td>
<td>Name</td>
<td>City</td>
<td class="text-center text-nowrap">Person</td>
</tr>
[...]
<button id="exports" class="btn btn-success" type="button">
<span class="glyphicon glyphicon-export"></span> Export
</button>
爲了只返回根據用戶的導出按鈕點擊請求這些文件,我寫了這個:
$('#exports').click(function() {
var exports = $(this);
$('[id^=exportID-]').each(function() {
if (this.checked) {
window.open('ajax/get-exports.php?ExportID=' + this.id.substring(9));
}
});
});
現在,使用Firefox的開發者控制檯調試我的代碼,each()
按預期工作:每次下載都會有一個新窗口。
但是,在沒有調試器的情況下運行相同的代碼,它只會爲最後一個選定行打開一個新窗口。
不幸的是,我無法找到這個問題的答案 - 無論是在互聯網的深處還是其他地方,所以:我做錯了什麼?
打開開發者控制檯並執行代碼通常會導致緩存問題。你可以請CTRL + SHIFT + DEL,並清除你的緩存,並嘗試執行你的代碼,而無需打開dev控制檯。 –
非常感謝@DavidR!這確實是一個緩存問題。 如果您添加您的評論作爲答案,我會高興地接受它。 :) – Yoda
已經完成! :) 對不起錯誤提及,但SO似乎與包含空格的用戶名掙扎 - 我點擊了多次自動完成,但保存後,它不會變成一個可點擊的文本。 :( – Yoda