我在同一页面上使用多个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>
你们中的任何人都可以强调这段代码中的任何错误吗?
答案 0 :(得分:0)
代码似乎是正确的。 我看到你的网站使用的是jquery版本:v1.6.2, 在这个论坛中我发现有些版本有同样的问题:
jquery special event hoverintent on accordion not working in jquery 1.7
尝试升级你的jQuery ......也许它会起作用。