jQuery onclick隐藏其父元素

我想在标签上隐藏

  • 标签,点击jQuery。

      

    换句话说,如果有人点击链接( ),其父

  • 将被隐藏。

     (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 }) 

    上面的代码假定链接直接包含在列表元素(

  • )中。 如果不是这种情况,您可以将选择器传递给.parent方法,如下所示:

     $(this).parent("li").hide(); 

    这将找到您的链接的祖先并返回

  • 的祖先。

    回归虚假

    通常,当您单击标签时,浏览器将导航到标签的href。 如果你不想要,你可以return false; 从单击处理程序或添加返回false的href: Link 。 在这个问题上有更多关于此的讨论。

    有很多不同的方法可以做到这一点

    您可能需要代码的变体,因为:

    • 您可能在页面上有其他链接,您不想隐藏其父级。 这就是为什么使用“ul li a”作为选择器而不是“a”是有意义的 – 它只匹配列表中的链接
    • 您可以使用事件对象的.preventDefault()而不是返回false来阻止浏览器更改地址
    • 由于链接在被单击后将被隐藏,您还可以使用.one方法 – 它将在单击链接后删除事件处理程序。 如果您打算稍后再次显示该链接,请不要这样做。
    • 如果您的列表是动态的,则可以使用.on而不是.click ,即您将使用Javascript添加链接
    • 一些回答者已将代码包装在所谓的自调用函数中。 它看起来像这样: (function() { /* code */})(jQuery); 。 我不建议初学者使用它,虽然它可以帮助您稍后构建代码。 基本上它可以帮助您避免代码中不必要的副作用,并允许您使用.noConflict 。

    试试这个隐藏父母li并阻止点击超链接的默认操作。 请参阅http://api.jquery.com/event.preventDefault/ :

     $(function() { $("a").click(function(e) { e.preventDefault(); $(this).parent().hide(); }); }); 

    别忘了使用return false;

      $('a').click(function(){ $(this).parent().hide(); return false; });​ 

    现场演示

    您可以使用.parent()来定位元素的父级,使用.parent() .hide()来隐藏它。 有关这些函数的用法的详细信息,请参阅jQuery文档。 您还应该使用.preventDefault()来阻止浏览器跟踪链接。

     $(function() { $('a').click(function(e) { e.preventDefault(); $(this).parent().hide(); }); }); 
     $( "a" ).click( function(){ $( this ).parent().hide(); return false; } ); 

    工作实例可以在这里找到http://jsfiddle.net/shinyakoizumi/aQanZ/

     $('a').click(function(){ $(this).parent('li').hide(); }); 
    Interesting Posts