1

さて、私はこの同じページで複数の jQuery スライダーを使用しています & どうにかしてそれを機能させることができましたが、別の問題があります:

http://www.tradelobus.com/index2.php

アコーディオン メニュー : http://jqueryui.com/accordion/#hoverintent

「Premium Memberships」では、div は実際にマウスのホバーインテントで機能します。「jquery noConflict」を追加すると、他のすべてが機能し始めましたが、アコーディオン メニューはホバーではなく CLICK イベントでのみ機能するようになりました。

コードは次のとおりです。

  <script>
  var $accui = jQuery.noConflict(true);
  $(function() {
$accui( "#accordion" ).accordion({
    event: "click hoverintent"
});
  });

  var cfg = ($.hoverintent = {
sensitivity: 7,
interval: 50
  });

  $.event.special.hoverintent = {
setup: function() {
    $( this ).bind( "mouseover", jQuery.event.special.hoverintent.handler );
},
teardown: function() {
    $( this ).unbind( "mouseover", jQuery.event.special.hoverintent.handler );
},
handler: function( event ) {
    var that = this,
        args = arguments,
        target = $( event.target ),
        cX, cY, pX, pY;

    function track( event ) {
        cX = event.pageX;
        cY = event.pageY;
    };
    pX = event.pageX;
    pY = event.pageY;
    function clear() {
        target
            .unbind( "mousemove", track )
            .unbind( "mouseout", arguments.callee );
        clearTimeout( timeout );
    }
    function handler() {
        if ( ( Math.abs( pX - cX ) + Math.abs( pY - cY ) ) < cfg.sensitivity ) {
            clear();
            event.type = "hoverintent";
            event.originalEvent = {};
            jQuery.event.handle.apply( that, args );
        } else {
            pX = cX;
            pY = cY;
            timeout = setTimeout( handler, cfg.interval );
        }
    }
    var timeout = setTimeout( handler, cfg.interval );
    target.mousemove( track ).mouseout( clear );
    return true;
}
};
</script>

どなたか、このコードの間違いを指摘していただけますか?

4

1 に答える 1

0

コードは正しいようです。jquery バージョン: v1.6.2 を使用している Web サイトが見つかりました。このフォーラムでは、いくつかのバージョンに同じ問題があることがわかりました。

アコーディオンのjquery特別イベントhoverintentがjquery 1.7で機能しない

jQuery をアップグレードしてみてください...うまくいくかもしれません。

于 2012-12-21T13:36:50.783 に答える