2010-01-31 59 views
0

我無法使用jQuery(1.3.2)正確地創建DOM元素:

var ev_t; 
$("#add-event").click(function() { 
    ev_t = $("<form>", { action : "someURL" }).hide().appendTo(document.body); 
    var fields = $("<div>").appendTo(ev_t); 
    fields.load("someURL", function() { 
     $("<input>", { type: "submit", value: "Add" }).appendTo(ev_t); 
     ev_t.dialog(); 
    }); 
    ev_t.submit(function() { 
     // form submission ... 
     return false; 
    }); 
    return false; 
}); 

和元素插入但沒有的屬性(表單動作和輸入類型和值)設置爲。我究竟做錯了什麼?

回答

1

jQuery(1.3+)的第二個參數(有一個時)是選擇器的上下文,而不是要應用的一組屬性。嘗試:

ev_t = $('<form>').attr('action','someUrl").hide().appendTo(document.body); 

$("<input>").attr({ type: "submit", value: "Add" }).appendTo(ev_t); 

或升級到jQuery的1.4+

+0

我解決了升級到1.4.1,但我打算接受這個答案,因爲它解釋瞭如何在1.3。*中做到這一點。對於無法升級的用戶可能會有用。 – Utaal 2010-02-01 01:38:53

1

看來這個功能只能從jQuery 1.4

對於jQuery 1.4,我們可以通過地圖0​​特性的第二個參數。 此參數接受可以傳遞給 .attr()方法的 屬性的超集。此外,任何事件 類型都可以傳入,並且跟隨jQuery方法的 可以是 ,這些方法可以是:val,css,html,text,data, 寬度,高度或偏移量。

升級你的jQuery庫,你應該沒問題。

+0

我有一對夫婦的jQuery UI的1.7事情1.4打破。您可能希望將jQuery UI同時升級到1.8或等到它們都穩定下來。 – tvanfosson 2010-01-31 12:45:47

+0

我在閱讀文檔時錯過了這一行(什麼是白癡)。升級到1.4和UI 1.8:現在它工作。謝謝 – Utaal 2010-02-01 01:35:02