我有一个<ul>
,当我在输入框中输入文本时,将在列表中预览文本。我还有一个按钮,可以在<ul>
中添加更多的<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
“主题”上预览的。我怎么才能解决这个问题?我可以将id
s分配给<li>
s,但是通过按钮添加的那部分呢?
新小提琴
发布于 2015-03-13 21:19:53
看看jsFiddle。单击时,您可以保存当前节点,而且keyup
绑定必须脱离click
处理程序。
input.keyup(function (e){
...
}
$('.topics').click(function(){
preview = $(this).find('a');
...
}
https://stackoverflow.com/questions/29041798
复制相似问题