2010-02-04 31 views
7

我想創建一個jQuery選項傳輸插件。jQuery的bug? .appendTo()不工作在IE7

我有在opera,firefox,chrome & safari中工作的基本功能,但是IE7沒有合作。

IE7中的傳輸函數看起來很偶然且難以理解。

我創建了an example page to illustrate my problem

任何人都可以看到我要去哪裏錯了嗎?

感謝,

+0

不知道是什麼的問題的根源是,但我沒有複製。奇。 – 2010-02-04 15:45:55

+0

更可能是IE 7的bug ......;) – jamone 2010-02-04 21:29:36

+0

呵呵,你說...交換不同的版本jQuery產生不同的「效果」。 :p – Mike 2010-02-04 22:45:52

回答

6

這看起來不像.appendTo() - 在jQuery中的錯誤和IE7-has-superfunky-select-box-behavior問題一樣多。這種解決方法似乎使其行爲:

.parent() 
.click(function() {  
    $selectBox1.find('option:selected') 
       .appendTo($selectBox2.find('select')); 
    $selectBox1.html($selectBox1.html()); 
    $selectBox2.html($selectBox2.html());        
    sortBox($selectBox2); 
    }) 

的appendTo後重建的每個選擇框的HTML()強制IE更新其狀態。

JSbin:http://jsbin.com/opome3/4(固定.clone(真)的第一個按鈕)。

+0

謝謝你。這可能是因爲我盯着這個時間過長,但出於某種原因,最後一個按鈕(從2→1中選擇的移動)在Chrome,Firefox,Opera或Safari中不起作用 - 在您的示例中。 – Mike 2010-02-04 18:59:10

+0

您需要爲第一個按鈕添加.clone(true)。 – jkyle 2010-02-04 19:33:22

+0

你是明星,謝謝你的伴侶。 – Mike 2010-02-04 20:12:56

1

我得到的也就是一個錯誤:

行:16 錯誤: '未定義' 爲空或不是對象

指向此:

j=l.replace(/^[\-\d\.]+/,"") 

我猜你需要測試爲null?只是一個猜測。

+2

如果您在本地加載文件,這似乎不會發生。獲取源代碼並創建自己的html文件。我認爲這是一個jsbin的bug? – Mike 2010-02-04 15:51:46

+1

錯誤來自「edit.js」腳本,而不是來自您的代碼。 – Pointy 2010-02-04 16:43:15