我有一个下拉菜单,通常在鼠标悬停时会弹出,但在触摸设备上,我只需使其能够通过单击打开即可。
问题是,在我的iPhone 4上,似乎下拉的
顺便说一下:
HTML设置基本上是像下拉菜单一样的
编辑:这是我正在工作的网站的链接:http://bok-it.underbakke.net 编辑:我刚刚注意到一些您可能会发现有用的额外信息。第一次单击链接时,该链接上的CSS会像悬停(如:hover)一样起作用。当我单击子链接的第一次显示下拉菜单的主链接(我最初单击的那个链接)失去了悬停状态。这就是为什么我认为这是一个焦点问题的原因。
编辑:所请求的HTML标记:
问题是,在我的iPhone 4上,似乎下拉的
- 没有完全被聚焦或类似的问题,因为我必须连续点击两次才能使链接起作用。
这是我正在使用的代码:
$(document).ready(function() {
$('.myMenu > li').bind('mouseover', openSubMenu);
$('.myMenu > li').bind('mouseout', closeSubMenu);
$('.myMenu > li').bind('click', toggleSubMenu);
/* Also tried, currently using:
$('.myMenu > li').bind('tap', toggleSubMenu);
*/
function openSubMenu() {
$(this).find('ul').addClass("hovered");
};
function closeSubMenu() {
$(this).find('ul').removeClass("hovered");
};
function toggleSubMenu() {
$(this).find('ul').toggleClass("hovered").focus();
};
});
.focus()
是我尝试添加的解决方法。它没有破坏代码,但也没有修复问题。我知道有几个方法可以使它更适合触摸设备,但目前我仍然坚持使用点击方法。顺便说一下:
.hovered{
opacity:1 !important;
visibility: visible !important;
}
HTML设置基本上是像下拉菜单一样的
<ul>
内嵌<ul>
。如果您出于某种原因需要标记,请告诉我,我会添加它。编辑:这是我正在工作的网站的链接:http://bok-it.underbakke.net 编辑:我刚刚注意到一些您可能会发现有用的额外信息。第一次单击链接时,该链接上的CSS会像悬停(如:hover)一样起作用。当我单击子链接的第一次显示下拉菜单的主链接(我最初单击的那个链接)失去了悬停状态。这就是为什么我认为这是一个焦点问题的原因。
编辑:所请求的HTML标记:
<ul class="myMenu">
<li><a href="/"><span class="icon-home"></span> Framside</a></li>
<li><a href="#" id="nbutikk"><span class="icon-cart"></span> Butikk</a>
<ul>
<li><a href="/sand"><span class="icon-cart"></span> Sand</a></li>
<li><a href="/sauda"><span class="icon-cart"></span> Sauda</a></li>
<li><a href="http://kontorhandel.no"><span class="icon-cart"></span> Nettbutikk</a></li>
</ul>
</li>
<li><a href="#" id="nit-tjenester"><span class="icon-console"></span> IT Tjenester</a>
<ul>
<li><a href="/driftsavtale"><span class="icon-console"></span> Driftsavtale</a></li>
<li><a href="/asp_vps"><span class="icon-console"></span> ASP & VPS</a></li>
<li><a href="/overvaking"><span class="icon-console"></span> Overvåking</a></li>
<li><a href="/nettverk"><span class="icon-console"></span> Nettverk</a></li>
</ul>
</li>
<li><a href="#" id="nsupport"><span class="icon-info"></span> Support</a>
<ul>
<li><a href="/fjernsupport"><span class="icon-info"></span> Fjernsupport</a></li>
<li><a href="/utskrift_asp"><span class="icon-info"></span> Utskrift ASP</a></li>
<li><a href="/rdp_rycloud"><span class="icon-info"></span> RDP: Rycloud</a></li>
<li><a href="teamviewer_host"><span class="icon-info"></span> TeamViewer Host</a></li>
</ul>
</li>
<li><a href="/kontakt"><span class="icon-mail"></span> Kontakt Oss</a></li>
</ul>
--------------解决方案--------------
编辑:对于那些正在寻找解决方案的人,这是为我解决问题的jQuery代码(你还应该给@jonsuh点个赞,因为他提供了解决方案):
$(".myMenu li ul li a").on("touchend", function(event) {
window.location.href = $(this).attr("href");
});