2012-12-05 101 views
1

我正在制作一个类似于facebook app/webapp的导航结构的webapp。Jquery移动点击叠加元素

我的问题是,当我点击我的“显示菜单”按钮时,我也点击我后面的菜单项。

我的HTML结构是这样的:

<div id="menu"> 
    <ul> 
    <li> 
     <a href="page.html">Menu item</a> 
    </li> 
    </ul> 
</div> 

<div id="contentholder"> 
    <div id="menu-btn"></div> 
</div> 

#menu和#contentholder被放置在彼此的顶部同位置是:绝对;顶部:0;左:0;

我使用Jquery mobile进行触摸事件。

我的自来水脚本如下:

$('body').on('tap', '#menu-btn', menuActive); 

我试过e.stopPropagation()在menuActive功能,但似乎并没有做什么都好。

的menuActive功能:

function menuActive(e){ 
    $('#menu-btn').addClass('active'); 
    $('#contentholder').addClass('slided'); 
} 

有什么建议?

+0

你的'menuActive'函数在哪里?提供一个样本。 –

+0

我将它添加到问题中。但它没有多大作用,它的视觉功能 – afcdesign

+0

'event.stopPropagation'可能不适用于IE。你在IE中测试过吗?尝试在函数顶部添加'e.stopPropagatation',看看它是否适用于FF,Chrome。 –

回答

0

在我的menuActive函数中用e.preventDefault()修复了它。虽然我不明白为什么它通过我的#contentholder水龙头...哦,现在它的工作...

0

我很抱歉回答,并没有链接到的信息,但我无法找到我读的地方。

总之,“点击”事件是取代'点击',因为'点击'等待了太多毫秒以知道它是点击还是其他事件。

因为它太短了,所以不应该在它引起某物移动时使用。这是因为'点击'或'点击'然后将在X和Y处注册,然后单击现在暴露的区域。

看来你找到了解决办法。

+0

感谢您的信息,其良好的知识。如果您正在激活移动物体,是否应该使用vclick? – afcdesign