动态地向div添加元素不会被解析

时间:2014-02-16 23:01:18

标签: jquery html css insertafter

我有一个div,它有多个子div或面板,在页面加载时,附加了样式,在页面上以正确的方式放置它们。我有一个添加新面板的按钮,但该面板没有添加必要的样式。 (该方法是jQuery insertAfter函数)。我正在使用Syrena Admin模板,所以我不知道调用重新解析元素的函数。有没有办法重新加载div,就好像页面正在重新加载?换句话说,有没有办法只重新加载页面的一部分?

HTML

<div class="magic-layout isotope">
    <div id="panel2" class="panel panel-default magic-element isotope-item">
        <div class="panel-heading">
            <span class="panel-title">Additional</span>
        </div>
        <div class="panel-body">
            <div class="form-group">
                <input type="text" name="role[]" placeholder="Role" class="form-control" display="text" /> 
                <input type="text" name="first_name[]" placeholder="First Name" class="form-control"  display="text"/>

                <input type="text" name="last_name[]" placeholder="Last Name" class="form-control"  display="text"/>
                <input type="text" name="phone[]" placeholder="Phone Number" class="form-control" display="text" />
            </div>
            <div class="form-group">
                <input type="text" name="address_line_1[]" placeholder="Address Line 1" class="form-control"  display="text"/>
                <input type="text" name="address_line_2[]" placeholder="Address Line 2" class="form-control"  display="text" value=""/>
                <input type="text" name="line_3[]" placeholder="City, State Zip" class="form-control"  display="text"/>
                <input type="hidden" name="contact_id[]" value="">
            </div>
        </div>
    </div>

    <additional></additional>
    <div id="panel2" class="panel panel-default magic-element isotope-item">
        <div class="panel-heading">
            <button type="button" class="btn btn-info btn-block" onclick="addRow(this.form)">Add</button>
        </div>
    </div>
</div>

JS

var rowNum = 0;
function addRow(frm) {
    rowNum++;
    var row = '<div id="panel2" class="panel panel-default magic-element isotope-item"><div class="panel-heading"><span class="panel-title">Additional</span></div><div class="panel-body"><div class="form-group"><input type="text" name="role[]" placeholder="Role" class="form-control" display="text" /> <input type="text" name="first_name[]" placeholder="First Name" class="form-control"  display="text"/><input type="text" name="last_name[]" placeholder="Last Name" class="form-control"  display="text"/><input type="text" name="phone[]" placeholder="Phone Number" class="form-control" display="text" /></div><div class="form-group"><input type="text" name="address_line_1[]" placeholder="Address Line 1" class="form-control"  display="text"/><input type="text" name="address_line_2[]" placeholder="Address Line 2" class="form-control"  display="text" value=""/><input type="text" name="line_3[]" placeholder="City, State Zip" class="form-control"  display="text"/><input type="hidden" name="contact_id[]" value=""></div></div></div>';
    $(row).insertAfter('additional');
}

1 个答案:

答案 0 :(得分:3)

我认为按钮的点击事件未正确绑定到您的函数addRow

不是从onclick="addRow(this.form)"绑定事件,而是尝试按如下方式创建click事件:

$(function() {
    $("#mybutton").click(function() {
        addRow($(this));
    });
});

其中mybutton添加按钮:

<button type="button" class="btn btn-info btn-block" id="mybutton">Add</button>

这是一个小提琴,包括所做的更改:Fiddle

试试让我知道:)