2012-07-07 103 views
2

我通過jQuery將值附加到div中,但我意識到附加的值不受我的javascript函數的影響。添加不受javascript影響的jQuery值

$(".div").append("<input type='text' class='textForm' placement='Value' />"); 

我在我的JavaScript代碼中設置的是,它需要屬性放置任何類「textForm」,並使其成爲一個值。但我意識到一旦附加了值,它就不會受到我的javascript的影響。有關如何解決此問題的任何想法?

+0

你能告訴我們你正在談論的其他代碼嗎? – Lix 2012-07-07 14:33:11

+0

有趣的是,這個類名是'div'。 – Engineer 2012-07-07 14:35:03

+0

我認爲@eng想說的是,爲一個班級選擇一個更具描述性的名字可能更好。現在我們可以從名稱中扣除它是一個div元素。爲什麼不給它一個更像'textFormHolder'的描述性名稱。它會使你的代碼更具可讀性並且更容易擴展/維護。 – Lix 2012-07-07 14:36:12

回答

2

我想你有一些事件有限的一些元素,如追加後不工作。像這樣的東西。

$(function(){ 
    $(".someClass").click(function(){ 
     //dome some thing 
    }); 
}); 

如果你想相同的功能對新注入的工作DOM元素(通過動態附加/ jQuery的AJAX等...添加),你應該考慮使用jQuery on。所以,你的代碼應該改變這樣的

$(function(){ 
    $(document).on("click",".someClass",function(){ 
     //dome some thing 
    }); 
}); 

on將爲當前和未來元素

+1

謝謝,這對我更有意義! – Majo0od 2012-07-07 14:50:55

+0

@Majed:不客氣。 :) – Shyju 2012-07-07 14:51:32

4

如果您正在使用

$(".textForm").click(){} 

那麼現在使用

$(document).on("click",".textForm",function(){//Dtuff here}) 

這將附加.on("click")document對象,因此將上存在的所有元素,所有的元素被啓用創建的匹配.textForm選擇器。

+0

實際上,我在我包含的JavaScript文件中使用了一個函數,然後將它調用到如下所示的按鈕上: Majo0od 2012-07-07 14:40:45

+0

你不能這樣做,你必須在主頁上寫這個函數,老兄你正在使用jquery然後轉儲這個舊的綁定事件方式 – 2012-07-07 14:43:21

+0

好吧,好吧,我想保持這樣的組織。我不知道這是做這件事的「老辦法」。 – Majo0od 2012-07-07 14:47:11

0

我不知道我理解爲什麼您複製刊登位置值的屬性位到輸入工作價值,但我可以提供這個建議讓你的表單域出現。

$("div").each(function() { 
    $(this).append($("<input type='text' class='textForm' placement='Value' />")) 
}); 

我假設你想通過標記名稱來識別你的div,而不是類名。如果是這樣,你的jQuery選擇器將需要是「div」,而不是「.div」。此外,您需要將您的HTML包裝到$()中以生成DOM元素。