javascript - jquery 克隆 + 实时问题

标签 javascript jquery html clone

我有一段 html,我想在新复制的 block 特定处理程序中复制和分配特定选择。我的问题是处理程序被触发 n 次我复制这个 block 。有什么调试这个麻烦的建议吗? (总 list :total listing)

J查询代码:

"appendNewBlockTo" : function(oAppendTo, sFilterByCName){
    var iIndex = $("." + sFilterByCName).length/2;
    var oNewPlayerCS = $("#" + this.sTemplateBlockID).clone(false);


    // alter template before copying
    $(oNewPlayerCS).find("." + this.sClassListboxCName).addClass(sFilterByCName).attr('index', iIndex).live($.browser.msie ? 'click' : 'change', function(){PlayerCS.enableSListbox(sFilterByCName, iIndex);});
    $(oNewPlayerCS).find("." + this.sSpecListboxCName).addClass(sFilterByCName).attr('index', iIndex);
    $(oNewPlayerCS.removeAttr('id').removeAttr('style')).appendTo(oAppendTo);
},

要多次复制的 HTML block :

<div id="playerCSTemplate" style="display:none;">
    <select class="class_listbox">
        <option selected="selected" value="0">Class</option>
        <option class="class_value" value="1">mage</option>
        <option class="class_value" value="2">priest</option>
    </select>

    <select class="spec_listbox" disabled>
        <option value="0">Unknown</option>
        <option class="spec_class class_specs_1">Frost</option>
        <option class="spec_class class_specs_1">Fire</option>
        <option class="spec_class class_specs_2">Holy</option>
        <option class="spec_class class_specs_2">Shadow</option>
    </select>
</div>

最佳答案

您正在使用 clone(true) - true 表示应克隆元素以及它们在其上设置的事件。然后,您将向克隆中添加更多事件,从而产生重复。

将行更改为:

var oNewPlayerCS = $("#" + this.sTemplateBlockID).clone(false); 

或者如果需要,您可以省略 false,因为它是默认值。

或者,您可以保留 clone(true) 并且不向其中添加事件。

关于javascript - jquery 克隆 + 实时问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8790216/

相关文章:

html - Firefox 在 Aptana 中看不到 CSS/HTML 链接

javascript - 如何使用 javascript 根据条件为 html 标记 (<span>) 添加类

javascript - 按时间对对象进行排序

javascript - 如果 <li> 包含特定文本,则返回 false

javascript - 选择 2 个 DIV 元素

javascript - 设备方向更改时粘性 footbar 位置错误

javascript - JS中对象变量改变事件如何处理 ||查询?

javascript - 使用 javascript 的浏览器存储

html - 宽度 :max-content works in chrome but not in firefox

javascript - 有人在 Firefox 3.6.3 中获得零高度选择字段吗?