私はOpencart(1.5.5.1)とJournalテーマの古いバージョンを使用しています。ドロップダウンメニューのmouseleaveで遅延を追加します
ドロップダウンメニューは、マウスを離したときにすぐに消えます。これは実際デスクトップ上の問題ではありませんが、タッチスクリーンデバイスでは問題を引き起こします。私はすぐにフェードアウトする前に数秒待つ必要があります。
この件に関するいくつかの類似の記事を読みましたが、解決策を自分のコードに適用するのが少し難しいと思います。私はmouseleaveが同じ方法で(おそらくない)タッチ画面に適用されるかどうかはわかりません。
誰でもデスクトップとモバイルの両方で機能する遅延を追加することで助けてください。ここで
はコードです:あなたは
setTimeout 機能を使用することができます
$('#cart > .heading a').die('click');
$('#cart').die('mouseleave').die('mouseover').die('mouseleave').die('click');
$('#cart').live('mouseover', function() {
if (!$("#cart").hasClass('active')) {
if (!Journal.isOC2) {
$('#cart').load('index.php?route=module/cart #cart > *');
}
$('#cart').addClass('active');
$('#cart').live('mouseleave', function() {
$(this).removeClass('active');
});
}
});
おかげで、ikdekker! 私はあなたのソリューションを試しましたが、これは確かに何かをしますが、マウスを動かしてもどれくらい待ってもメニューが閉じなくなるので機能しないようです。 –
タイムアウトが発生したのを確認しようとしましたか? (console.log()またはalert()を使用して)。ちなみに、私は最初に私の投稿で失敗し、誤って間違った順序でパラメータを入れました。あなたのコードは私の答えと同じですか?もしそうなら、$(this)要素は正しいものを対象としていますか? – ikdekker
idを 'cart'としたクラスを 'アクティブ'にしたい要素が削除されていますか?そうでない場合は、$(this)を目的のクラスに置き換えてください。 – ikdekker