誰かがここで私を助けてくれることを願って、少しの間これに苦労しています。タッチデバイスのエンドユーザーに、ドロップドウォンメニューを「クリック」してサブメニュー項目を表示する機能を提供する必要があります。これは、デスクトップエクスペリエンスの観点からは明らかに一般的なUX構造ですが、モバイルデバイスやタッチデバイスに関しては、理想的とは言えません。私はこれを理解していますが、それでも一時的な解決策としてこの経験を提供する必要があります。
そうは言っても、私は基本的に次のような簡単な方法を見つけようとしています。
- ユーザーが「タッチ」デバイスを使用しているかどうかを検出する
- 「true」の場合は、サブメニューを表示するためにドロップダウンメニューリンクをタップできるようにします。サブメニューリンクをクリックするか、メニュー領域の外に出るまで、このメニューを保持(開いたまま/表示したまま)にします(以下のjsFiddleで、ontouchstartを機能させることができますが、方法がわからないようです。それを永続化し、メニュー内のすべてのタグリンクで機能するようにします)。
- 「false」の場合、デフォルトの機能を許可します。
これが私がこれまでに持っている動作中のjsFiddleです:http://jsfiddle.net/bingles/hPJVM/18/
また、これまでのjsコードは次のとおりです。
var submenu = document.getElementsByTagName('a')[0];
if ("ontouchstart" in window) {
submenu.ontouchstart = function() {
$(".simple-tabs li.deep").addClass("deep-hover");
};
submenu.ontouchend = function() {
$(".simple-tabs li.deep").removeClass("deep-hover");
};
}
else {
$(".simple-tabs li.deep").hover(
function() {
$(this).addClass("deep-hover");
}, function() {
$(this).removeClass("deep-hover");
});
$(".simple-tabs.live li").each(function(i) {
var parent = $(this);
if ($(this).hasClass("current")) {
$(".simple-tab-" + i).fadeIn("fast");
}
$(this).find("a").click(function() {
parent.parent().find("li").removeClass("current");
parent.addClass("current");
$(".simple-tab").hide();
$(".simple-tab-" + i).show();
return false;
});
});
}
私はまだjQueryを学んでいるので、期待したほど前進することができませんでした。どんな助けやガイダンスも大歓迎です!
前もって感謝します。