2

我正在通过 jQuery 将值附加到 div 中,但我已经意识到附加的内容不受我的 javascript 函数的影响。

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

我在我的 javascript 代码中设置的是它采用任何类“textForm”的属性放置并使其成为一个值。但是我意识到,一旦附加了一个值,它就不会受到我的 javascript 的影响。有关如何解决此问题的任何想法?

4

3 回答 3

4

如果您当前正在使用

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

那么现在使用

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

这会将 附加.on("click")document对象上,因此它将在所有存在的元素以及与.textForm选择器匹配的所有创建的元素上启用。

于 2012-07-07T14:36:53.287 回答
3

我猜你有一些事件绑定到一些元素,比如在 append 之后不起作用。像这样的东西。

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

如果您希望在新注入的(通过 append /jquery ajax 等动态添加的)DOM 元素上使用相同的功能,您应该考虑使用 jquery on。所以你的代码应该这样改变

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

on将适用于当前和未来的元素

于 2012-07-07T14:37:47.157 回答
0

我不确定我是否理解您为什么要将值从放置属性复制到输入值中,但我可以提供这个建议来让您的表单字段出现。

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

我假设你想通过标签名而不是类名来识别你的 div。如果是这种情况,您的 jQuery 选择器将需要是“div”,而不是“.div”。此外,您需要将 HTML 包装在 $() 中以生成 DOM 元素。

于 2012-07-07T14:38:48.733 回答