jQuery .clone () и Microsoft Explorer (ошибка?) - PullRequest
4 голосов
/ 17 апреля 2009

У меня проблемы с Microsoft Explorer 6/7 и функцией jQuery «клон». JQuery, который я использую:

$(function() {
    $('#addFields').click(function() {
        var newCredit = $('#original').clone(); // create new set
        newCredit.find('input').val(''); // empty input fields
        $(this).before(newCredit); // append at the end
        return false;
    });
});

HTML-форма выглядит следующим образом:

<div id="original">

    <li id="prodEnt" >
        <label class="description" for="entity[]">Entity </label>
        <div>
            <input name="entity[]" class="element text medium" type="text" value="" /> 
        </div> 
    </li>       

    <li id="entFunc" >

    <label class="description" for="element_5">Function </label>
    <div>
        <input name="function[]" class="element text medium" type="text" value="" /> 
    </div> 
    </li>

    <li class="section_break_small"></li>
</div>

Браузер Microsoft не может реплицировать более одного клона и не обрабатывает (css) новые элементы.

Пожалуйста, посоветуйте мне альтернативу для IE! Спасибо.

1 Ответ

5 голосов
/ 17 апреля 2009

Вы не можете / не должны иметь <li> элементов без родителя <ul>. Кроме того, вы не можете / не должны иметь <div> элементов внутри <li>, как у вас. Наконец, у вас есть атрибуты id в клонируемом HTML, и это приведет к дублированию элементов с таким же id. Если вы замените внешний original div и сделаете его <ul>, избавитесь от атрибутов id и установите вместо него class, все будет хорошо.

Все это, как говорится, у меня работает на IE7 .

EDIT

В ответ на ваш комментарий:

Чтобы выбрать только первый, сделайте это (при условии, что у него есть класс fields):

$('ul.fields').eq(0).clone();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...