0

入力ボックスに<ul>入力すると、テキストがリストでプレビューされます。にさらに<li>s を追加できるボタンもあります<ul>。テキストボックスに入力すると、そのテキストがプレビューされるようにしたい<li>

私のコード:

<ul class="nav nav-list nav-stacked" id="courseNav">
    <li class="title">
        <a href="#">Overview</a>
    </li>
    <li class="topics" style="margin-top: -12px">
        <a href="#">Topic</a>
    </li>
    <li class="topics">
        <a href="#">Topic</a>
    </li>
    <li class="topics">
        <a href="#">Topic</a>
    </li>
</ul>

私のボタンコード:

$('#addCourse').click(function() {
    // adds a li to the courseNav
    $('#courseNav').append('<li class="newTopic" id="newLi"><a href="#">Topic</a></li>');

    $('.newTopic').click(function() {
        $('#courseDiv').css('display', 'none');
        $('#topicDiv').css('display', 'block');
    }); 
});

$('#delCourse').click(function() {
    $('#newLi').remove();
});

私のプレビューコード:

var input = $('#editorText'),
    preview = $('.topics a');

    input.keyup(function (e) {
        preview.html(input.val());
        preview.css('padding-top', '10px');
        preview.css('padding-bottom', '10px');
        preview.css('padding-right', '15px');
        preview.css('padding-left', '15px');
        preview.css('word-wrap', 'break-word');
    });

問題は、 「トピック」<li>を含むすべての でテキストがプレビューされることです。classどうすればこれを修正できますか? ids に s を割り当てることはでき<li>ますが、ボタンによって追加されたものはどうなりますか?

新しいフィドル

4

1 に答える 1

0

jsFiddleをチェックしてください。クリックすると、現在のノードを保存できます。また、バインディングはハンドラーkeyupの外にある必要がありますclick

input.keyup(function (e){
   ...    
}

$('.topics').click(function(){
    preview = $(this).find('a');
    ...
}
于 2015-03-13T21:19:53.860 に答える