我想用 jQuery隐藏<li>
标签点击标签。<a>
<ul>
<li>
<a href="'>Something</a>
</li>
<li>
<a href="'>Something</a>
</li>
<li>
<a href="'>Something</a>
</li>
</ul>
换句话说,如果有人点击link( <a></a>
),它的父<li>
级就会被隐藏。
我想用 jQuery隐藏<li>
标签点击标签。<a>
<ul>
<li>
<a href="'>Something</a>
</li>
<li>
<a href="'>Something</a>
</li>
<li>
<a href="'>Something</a>
</li>
</ul>
换句话说,如果有人点击link( <a></a>
),它的父<li>
级就会被隐藏。
(function() {
$("ul li a").click(function(e) {
e.preventDefault();
$(this).parent().hide();
});
})(jQuery);
也尝试“一个” jQuery 函数
(function() {
$("ul li a").one('click', function(e) {
e.preventDefault();
$(this).parent().hide();
});
})(jQuery);
使用.click处理事件,然后使用.parent和.hide方法。
$("a").click(function(){
$(this).parent().hide(); // this is the link element that was clicked
})
上面的代码假定链接直接包含在列表元素 ( <li>
) 中。如果不是这种情况,您可以将选择器传递给这样的.parent
方法:
$(this).parent("li").hide();
这将通过您的链接的祖先找到并返回一个<li>
.
返回假
通常,当您单击<a>
标签时,浏览器将导航到标签的 href。如果您不希望这样,您可以return false;
从单击处理程序或添加返回 false: 的 href: <a href="javascript:void(0)">Link</a>
。在这个问题中有更多关于这个的讨论。
有很多不同的方法可以做到这一点
您可能需要代码的变体,因为:
.preventDefault()
事件对象的,而不是返回false来防止浏览器改变地址.click
,即您将使用 Javascript 向其添加链接(function() { /* code */})(jQuery);
。我不会向初学者推荐这个,尽管它会帮助你稍后构建你的代码。基本上,它可以帮助您避免代码中不需要的副作用,并允许您使用.noConflict。$( "a" ).click( function(){
$( this ).parent().hide();
return false;
} );
工作示例可以在这里找到 http://jsfiddle.net/shinyakoizumi/aQanZ/
试试这个隐藏父母li
并防止点击超链接的默认操作。请参阅http://api.jquery.com/event.preventDefault/:
$(function() {
$("a").click(function(e) {
e.preventDefault();
$(this).parent().hide();
});
});
您可以使用.parent()
来定位元素的父级,并.hide()
隐藏它。有关这些函数使用的详细信息,请参阅 jQuery 文档。您还应该使用.preventDefault()
来阻止浏览器跟踪该链接。
$(function() {
$('a').click(function(e) {
e.preventDefault();
$(this).parent().hide();
});
});
$('a').click(function(){
$(this).parent('li').hide();
});