如何在动态生成的元素上应用jquery ui样式

时间:2011-09-10 12:43:49

标签: jquery css jquery-ui

我正在使用jquery生成文本字段。我正在使用jquery ui来设计表单。我的问题是动态生成的元素,没有得到jquery ui的css:

var index = 0;
    $('#btn_generate').live('click', function(){
                var tr = $("<tr>").appendTo('#tbl_body');
                var td =  $("<td>").appendTo(tr);
                var txt = $("<label>").attr({'for' : index}).appendTo(td).html('content' + index + ':').css({'color' : 'white'});
                $("<input>").attr({'type' : 'text', 'name' : 'field[]', 'id' : index}).appendTo(td);
                index++;
            });

我该如何解决这个问题?

2 个答案:

答案 0 :(得分:2)

我猜你是否正在使用jQuery来初始化文档样式?

如果是这样,你有两个选择......

  1. 每次生成其他表单元素时重新运行初始jQuery
  2. 手动将所需的jQuery ui类添加到每个新对象。 (.addClass应该最好的IMO)
  3. 如果我正在咆哮错误的树让我知道:)

答案 1 :(得分:1)

你可以尝试这样的事情:

var index = 0;
$('#btn_generate').live('click', function(){
            var tr = $("<tr>").appendTo('#tbl_body');
            var td =  $("<td>").appendTo(tr);
            var txt = $("<label>").attr({'for' : index}).appendTo(td).html('content' + index + ':').css({'color' : 'white'});
            $("<input>").attr({'type' : 'text', 'name' : 'field[]', 'id' : index}).appendTo(td);

 //as you have given id=index to your input
  $('#'+index).yourjqueryuifunction();
            index++;
        });