2012-05-18 114 views
2

我正在使用jQuery可排序以允許用戶在<ul>列表中重新排列<li>。 HTML只包含jQuery可排序在IE中不工作

<ul id="uisortable"></ul> 

和JavaScript包含此:

$(function() { 
    $('#uisortable').sortable(); 
    $("#uisortable").disableSelection(); 
}); 

該項目是從JS和添加項目後,動態添加,我打電話

$( '#uisortable' ).sortable( 「刷新」);

一切工作在FF,歌劇和Webkit完美的罰款,但不會在IE瀏覽器在所有的工作 - 任何版本,甚至是IE 9。我嘗試添加activate選項將sortable這樣的:

$('#uisortable').sortable({ 
    activate: function() { 
     throw("Start sorting"); 
    } 
}); 

在IE 9腳本調試器,我在throw("Start sorting")行上放了一個斷點 - 但該行從不激活。看起來像在IE瀏覽器中,可排序的東西根本就不會附加到列表中。

我使用的jquery 1.4.2與jQuery UI 1.8.13。有趣的是,jQuery UI可排序的演示頁面正常工作,所以它必須是我的代碼 - 但我能進一步簡化它嗎?好的,我可以 - 所以我做到了。我不是動態創建項目,而是在我的HTML中靜態創建它們(用於測試)。除了一行文字外,我從<li>中刪除了所有內容。現在我的HTML看起來像這樣:

<ul id="uisortable"> 
    <li class="sortitem">Item 1</li> 
    <li class="sortitem">Item 2</li> 
    <li class="sortitem">Item 3</li> 
</ul> 

With the above javascript code。仍然不工作在IE中。並且在錯誤控制檯中沒有任何錯誤。儘管如此,FF,Webkit和Opera仍然很好。我現在完全陷入困境。任何幫助是極大的讚賞。

+1

你不能使用更新版本的jQuery嗎? – Blazemonger

+0

@Blazemonger我現在不想去那裏。網站上有數千頁,其中大約一半取決於jquery。如果我更改jquery版本,我將不得不重新測試數千頁。 –

回答

3

顯然,問題與jquery.ui版本有關。我從1.8.13升級到1.8.20(比將jquery從1.4.2升級到1.7.2容易得多) - 現在它可以工作了!

+0

是的,但奇怪的是我更新了JSFiddle(http://jsfiddle.net/edmM7/9/)以使用JQuery 1.4.2&1.8.13 ...並且它仍然適用於我在IE9中。 – Holf

+1

@Holf IE的奇蹟:)它現在起作用了 - 我再也不用碰它了! –

+0

準確地說,我會做! :) – Holf

0

看一看 this JSFiddle

在IE9中使用JQuery 1.4.4適合我。但是,如果我放棄到JQuery 1.3.2(JSFiddle上的下一個較低版本),它將停止工作。

您可以在JSFiddle上添加資源以獲取您使用的確切版本,但我認爲使用JQuery 1.4.4或更高版本(使用適當版本的JQueryUI)可以解決此問題。

+0

jQuery 1.3.2需要較舊版本的jQuery-UI。 – Blazemonger