jQuery Accordion - 与其他jQuery项目冲突

时间:2012-12-21 12:23:20

标签: jquery-ui jquery-ui-accordion hoverintent jquery

我在同一页面上使用多个jQuery滑块&不知何故,我设法让它工作,但现在还有另一个问题:

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

手风琴菜单:http://jqueryui.com/accordion/#hoverintent

在“高级会员资格”中,div实际上适用于鼠标hoverintent,当我添加“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>

你们中的任何人都可以强调这段代码中的任何错误吗?

1 个答案:

答案 0 :(得分:0)

代码似乎是正确的。 我看到你的网站使用的是jquery版本:v1.6.2, 在这个论坛中我发现有些版本有同样的问题:

jquery special event hoverintent on accordion not working in jquery 1.7

尝试升级你的jQuery ......也许它会起作用。