我想排序表格行Asc和Desc時點擊列標題。它在Firefox和Chrome中工作正常,但不能在IE中工作。我嘗試過不同的方式,比如獲取最新版本的jquery,我仍然遇到同樣的問題。 有些列以alphebetically排序,有些按數字排序,有些會根據空值進行排序,最後在checkstate排序。我基於類進行排序。Jquery排序錶行不工作在IE中,但在所有其他瀏覽器工作
我無法使用插件。這是我的。爲什麼在除IE以外的所有瀏覽器中都能正常工作?我已經看了看,並且我無法在任何地方找到像這樣的例子,其中有人按照相同的方式排序。 任何信息會有幫助。謝謝!
這裏的jquery-
<script type="text/javascript">
$(document).ready(function() {
$('.s').click(function() { //this is my header click
var NotOptional;
var checkState;
if ($(this).hasClass('o')) { //optional column
NotOptional = false;
} else {
NotOptional = true;
}
if ($(this).hasClass('cs')) { //class on my input items
checkState = true;
} else {
checkState = false;
}
var o = $(this).hasClass('asc') ? 'desc' : 'asc';
$('.s').removeClass('asc').removeClass('desc');
$(this).addClass(o);
var colIndex = $(this).prevAll().length; //getting the rows
var tbod = $(this).closest("table").find("tbody")
var rows = tbod.find("tr").not('.first');
rows.sort(function (a, b) {
if (checkState == true) { //if its a check box or radio
var A = $(a).find("td input").eq(colIndex); //getting checkstate
var B = $(b).find("td input").eq(colIndex);
if (A.is(':checked') == true) {
A = 1; //setting row value to compare
} else {
A = 0;
}
if (B.is(':checked') == true) {
B = 1;
} else {
B = 0;
}
if (A < B) { //returning compare for input
return A < B;
} else if (A == B) {
return A == B;
} else if (A > B) {
return A > B;
}
} else {
if (NotOptional == false) { //not optional never blank
var A = $(a).find("td").eq(colIndex).text().toUpperCase();
var B = $(b).find("td").eq(colIndex).text().toUpperCase();
} else {
//these don't have to have a value but might contain numeric, letter or a null value
var A = $(a).find("td").eq(colIndex).text().toUpperCase();
var B = $(b).find("td").eq(colIndex).text().toUpperCase();
if (!isNaN(A)) A = Number(A);
if (!isNaN(B)) B = Number(B);
}
}
return o == 'asc' ? A > B : A < B;
});
$.each(rows, function (index, ele) {
tbod.append(ele); //appending the rows
});
}); //end sortable click
我被困在這並不能弄清楚爲什麼IE不明白的行排序。如果有幫助,這個jQuery是在aspx頁面上的用戶控制。我已經在IE中使用開發工具檢查了標記,並且類在那裏,它通過Jquery點擊運行,但是當它比較行時,它會全部混淆並隨機附加它們(即 - 不排序)
不知道這是否會令任何區別,但是你錯過了這行的最後一個分號:VAR TBOD = $(本).closest(「表」)找到(「TBODY 「) – bUKaneer 2013-04-11 15:48:29
謝謝,我沒有看到。沒有修復它,但感謝您指出。 – 2013-04-11 15:54:41
IE中是否有類名的約束?我不禁想,也許IE會提供一個字符限制或最大數量的類,它會除外,明白嗎?有些行會在IE中移動,但有些行根本不會移動。 – 2013-04-11 15:56:28