2012-07-07 104 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元素。