javascript - 单击淡出 ul 的 anchor 标记上的事件?

标签 javascript jquery

我正在尝试创建一个链接,当悬停在无序列表中时,当您单击无序列表中的列表项时,ul 应该淡出。目前我无法弄清楚如何做到这一点。如果有人能向我解释我哪里出错了,或者有任何关于如何改进我的代码的有用提示,那就太好了。

代码在这里:http://jsfiddle.net/kyllle/W8AL5/


Javascript

$(document).ready(function() {
    $('#container li.hover').hover(function() {
        $(this).find('ul.countries').fadeToggle(200);
    });

    $('ul.countries a').click(function() {
        $('this').find('ul.countries').fadeOut(200);
    });
});

最佳答案

您的代码实际上并不遥远。只是几个问题:

  1. $('this') 不起作用。你需要 $(this)this 关键字指向被点击的元素。
  2. .find('ul.countries') -- find适用于后代元素。您想要的 ul 是父元素。你想要的方法是closest
  3. 如果您希望用户停留在同一页面上而不是点击链接,您应该使用 event.preventDefault .

所以,总共:

$(document).ready(function() {
    $('#container li.hover').hover(function() {
        $(this).find('ul.countries').fadeToggle(200);
    });

    $('ul.countries a').click(function(e) {
        e.preventDefault();
        $(this).closest('ul.countries').fadeOut(200);
    });
});

jsFiddle

关于javascript - 单击淡出 ul 的 anchor 标记上的事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6084625/

相关文章:

javascript - 在按钮单击中的 asp 代码隐藏之前优先进行 Jquery 验证

javascript - Kendo UI - 未捕获的类型错误

javascript - 等待事件未触发

javascript - 用 jQuery 将所有 XX 属性替换为数字 ID

javascript - 检查文件是否同步存在是什么意思?

javascript - toastr.js : How to override default parameters for entire project

javascript - 如何在 jquery 提交之前执行我的函数,直到验证正确

javascript - uploadify 未捕获类型错误 : Cannot read property 'toString' of undefined

javascript - 如何使用 javascript 拆分字符串 - 将名字和姓氏与文本框分开

javascript - 使用浏览器扩展删除reddit的直播,跟踪内容加载的事件是什么?