Icon-Picker 在 clone-function 之后出现多次

Icon-Picker shows up multiple times after clone-function

首先:抱歉我的英语不好而且我真的不是 jquery-pro - 所以请放轻松。

这是最重要的代码片段 + 示例...如果您需要更多帮助,请告诉我。

HTML + 内联 jquery 图标选择器:

<div class="full" style="margin-bottom: 0;">

                                    <span class="two_fifth first" style="margin-bottom: 0;">
                                        <h3 class="skill-item-title">Symbol wählen</h3>
                                    </span>

                                    <span class="three_fifth" style="margin-bottom: 0;">

                                        <input id="icon2" type='' class="criteria_name_two show-tick" name='' style="width: 100%; float: left;" value='' placeholder="">

                                        <script type="text/javascript">
                                    jQuery(document).ready(function($) {
                                        var icons = {
                                            'Webapplikationen' : ['fa fa-car', 'fa fa-caret-square-o-down', 'fa fa-caret-square-o-left']
                                        };
                                        $('#icon2').fontIconPicker({
                                            source: icons,
                                            emptyIcon: true,
                                            hasSearch: true,
                                            allCategoryText: 'Alle Anzeigen',
                                        });
                                    });
                                    </script>
                                    </span>

                                </div>

HTML: "Add-Service" (调用下面的函数):

<div class="option_item">
                        <button type="button" name="submit_add_service" id='submit_add_service' value="add" class="button-secondary"><i class="fa fa-plus-circle"></i>Service hinzufügen</button>
                    </div>

jQuery(克隆):

//ADD SERVICE
jQuery('#template_service').hide();
jQuery('#submit_add_service').on('click', function() {      
    $newItem = jQuery('#template_service .option_item').clone().appendTo('#resume_service').show();
    var tmp = $newItem;
    tmp = $.unique( tmp );
    if ($newItem.prev('.option_item').size() == 1) {
        var id = parseInt($newItem.prev('.option_item').attr('id')) + 1;
    } else {
        var id = 0; 
    }
    $newItem.attr('id', id);

    $newItem.find('.skill-item-title span.num').text(id+1);

    var nameText = 'wpjobus_company_services[' + id + '][0]';
    $newItem.find('.criteria_name').attr('id', 'fuck').attr('name', nameText);

    var nameText = 'wpjobus_company_services[' + id + '][1]';
    $newItem.find('.criteria_name_two').attr('id', 'fuck').attr('name', nameText);

    var nameText = 'wpjobus_company_services[' + id + '][2]';
    $newItem.find('.criteria_notes').attr('id', 'fuck').attr('name', nameText);

    var nameText = 'fuck';
    $newItem.find('.criteria_icon').attr('id', 'fuck');

    //event handler for newly created element
    $newItem.children('.button_del_service').on('click', function () {
        jQuery(this).parent('.option_item').remove();
    });

});

示例:http://kufifi.at/test/last/2.html

问题简而言之: 在我调用 Clone() 函数后,选择器出现了两次。我的猜测是,它与尚未准备好的 DOM 或多个 ID 有关,但正如我所说,我真的不擅长 jquery 并且我真的已经结束了。

对于糟糕的代码感到抱歉 - 我 "played" 在最后一天试图解决这个问题时确实花了很多时间。

希望有人能帮助我。

谢谢, 尼克松.

我自己搞定了,并从 Whosebug 上的其他帖子中得到了一点帮助。如果有人感兴趣:我通过在我的克隆函数中添加以下内容来解决它:

$newItem.find('.criteria_icon').fontIconPicker();

有时候事情比你想象的要简单...