Noo*_*oor 3 javascript jquery document append click
我现在有这个代码:
<ul><li class="listitem">text<li></ul>
Run Code Online (Sandbox Code Playgroud)
jQuery的:
$('.listitem').click(function() {
$("#elname").text($(this).text());
$('#slists').css('visibility','hidden')
$('#elname').css('visibility','visible')
$('#elname').css('display','inline-block')
});
Run Code Online (Sandbox Code Playgroud)
这应该隐藏div而它确实如此,但是当我将项目附加到ul(使用类listitem)时,附加项目没有任何反应,它获得的类是正确的,标题和值也是如此.
这可能与上面的代码在文档就绪函数中有关吗?
Nic*_*ver 11
.live()改为使用,如下所示:
$('.listitem').live('click', function() {
$("#elname").text($(this).text())
.css({ visibility:'visible', display: 'inline-block' });
$('#slists').css('visibility','hidden')
});
Run Code Online (Sandbox Code Playgroud)
.live()听在document你点击冒泡......与新老元素泡本次活动以同样的方式水平,所以它不关心什么是后来添加的,在那里作为你的.click()处理程序绑定一个点击就存在的元素在当时选择器已运行.
或者,您可以提供您<ul>的ID或类,并使用.delegate()如下:
$('#myUL').delegate('.listitem', 'click', function() {
$("#elname").text($(this).text())
.css({ visibility:'visible', display: 'inline-block' });
$('#slists').css('visibility','hidden')
});
Run Code Online (Sandbox Code Playgroud)
这样可以减少冒泡,因此在事件方面只需要更整洁一点,它会在<ul>不是一直向上捕获它document.