2012-04-23 117 views
-1

这个简单的html css菜单。 现在它工作正常的页面重定向(href)。点击后隐藏菜单(淡出)

我想隐藏后点击它。

我只是在函数调用时,点击它,它将调用Ajax请求

http://jsfiddle.net/5TBFr/代码此处链接

here is image snap

+4

请您重新解释一下您的问题,我在第二行后丢失了:( – doNotCheckMyBlog 2012-04-23 13:34:23

+0

它在Mozilla Firefox中按预期工作,您是否在其他浏览器中尝试过 – Murtaza 2012-04-23 13:35:18

+0

它也会在点击Google Chrome后关闭... – DarkAjax 2012-04-23 13:36:25

回答

2

我supose这是你在找什么:http://jsfiddle.net/5TBFr/26/

我添加了一个点击事件在一个元素上,并且我返回false,所以请求被停止。你可以在那里添加你的ajax请求。我做了一些工作,移动“ul”元素以便鼠标离开并隐藏,然后我将它移回原始位置。

+0

'.closest('ul')'可能比'parent()。parent()'更好。 – j08691 2012-04-23 15:10:17

+0

@gabitzish:隐藏后不工作。下次它不会出现(不淡入)。 – 2012-04-25 11:18:04

+0

答案中的链接已过时。这是一个没有刷新工程http://jsfiddle.net/5TBFr/26/ – gabitzish 2012-04-25 11:24:34

0

首先,如果我理解你,因为你希望你需要jQuery,为什么?因为JavaScript不知道什么CSS属性影响特定的元素。其次,你使用CSS的方式并不是正确的,你正在混合设计和功能,并且对于像这样的最简单的任务,你会遇到像这样的问题。即使可以,CSS并不是想要显示或隐藏菜单,但是CSS的作用在于,甚至可以对其进行设计,但是当用户交互涉及到时,就会被搞砸。所以,要小心:P

在jQuery的应该是这样的:

$(document)​.ready(function() 
{ 
    $('ul').on('click', 'li a', function() 
    { 
     $(this.parentElement.parentElement).hide(); 
    }); 
});​ 

http://jsfiddle.net/5TBFr/25/

+0

你的jsFiddle可以工作,因为你一直在做这个请求。点击后必须返回false。返回false只会为你工作一次,因为它隐藏的ul元素将永远不会再出现。 – gabitzish 2012-04-23 15:05:57

+0

“因为javascript不知道什么CSS属性影响特定元素。”当然是的。由于jQuery是JavaScript,所以jQuery可以做的任何事情,JavaScript都可以做到。 – j08691 2012-04-23 15:06:48

+0

@ j08691当然,jQuery是JavaScript,但我不想知道jQuery在内部是否在简单的花式列表中检索所有css属性都直接影响DOM元素。如果你知道请,将不胜感激 – 2012-04-23 15:08:21