3

我的网站上有一个 javascript 下拉菜单,但它不能在 iphone/ipad 上运行,有谁知道我应该修改代码以使其在这些设备上运行?(例如黑莓菜单工作正常)。

JS文件:

var timeout         = 500;
var closetimer      = 0;
var ddmenuitem      = 0;

// open hidden layer
function mopen(id)
{   
    // cancel close timer
    mcancelclosetime();

    // close old layer
    if(ddmenuitem) ddmenuitem.style.visibility = 'hidden';

    // get new layer and show it
    ddmenuitem = document.getElementById(id);
ddmenuitem.style.visibility = 'visible';

}
// close showed layer
function mclose()
{
    if(ddmenuitem) ddmenuitem.style.visibility = 'hidden';
}

// go close timer
function mclosetime()
{
    closetimer = window.setTimeout(mclose, timeout);
}

// cancel close timer
function mcancelclosetime()
{
    if(closetimer)
    {
        window.clearTimeout(closetimer);
        closetimer = null;
    }
}

// close layer when click-out
document.onclick = mclose; 

下拉列表的 HTML:

<ul id="rentals">
    <li><a href="#" 
        onmouseover="mopen('m1')" 
        onmouseout="mclosetime()">Verhuur</a>
        <div id="m1" 
            onmouseover="mcancelclosetime()" 
            onmouseout="mclosetime()">
        <a href="shortterm2bed1.html">2 Slk. Vakantie <font color="172983">&nbsp;|     </font></a>
        <a href="shortterm3bed1.html">3 Slk. Vakantie <font color="172983">&nbsp;| </font></a>
        <a href="longtermrentals1.html"> Lange Termijn</a>
        </div>
    </li>
</ul>

任何帮助是极大的赞赏。

4

3 回答 3

1

iOS 不支持mouseovermouseout. 您将要使用touchstarttouchend。IE;

<div id="m1" 
    touchstart="mcancelclosetime()" 
...>

这是Apple 的 Javascript 开发指南的链接。

希望它有所帮助,祝你好运!

于 2012-06-22T17:29:31.133 回答
0

Ipad/Iphone 不支持 onmouseover、onmouseout 事件。

查看此页面以获取支持的事件:

http://backtothecode.blogspot.ca/2009/10/javascript-touch-and-gesture-events.html

您可能只需更改为 onclick。

于 2012-06-22T17:22:44.960 回答
0

我确实发现创建下拉菜单的 GoLive Menumachine 遇到了同样的问题。它不会在移动设备上显示下拉菜单。当我将主菜单按钮链接到页面时,它开始工作。换句话说,如果我有服务>维修和服务>更新,我必须有服务链接到一个页面,以便下拉菜单在我的 ipad 和 ipod 上工作。不要问我为什么。

于 2013-01-11T21:33:29.710 回答