2012-12-05 103 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