我已经看过这篇文章:Jquery mouseover firing click作者提到他解决了这个问题,但实际上没有发布解决方案。
问题在于:
有没有办法改变代码,以便在鼠标悬停时触发切换器内容而不是点击?
以下是我的示例:http://nerotic.net/auxout/
这是我正在使用的代码,包括我设置切换器内容面板的动画,直到触发点被移除:
$(document).ready(function() {
jcps.fader(100, '#switcher-panel');
var timeouts = new Array();
var cities = ["#berlin", "#wired", "#sicily", "#sterephile", "#dave", "#hometheatre", "#lsd", "#lefsetz", "#musicart", "#videohifi", "#alu", "#unplggd", "#alfa", "#digitaltrends", "#playboy", "#uncrate"];
var timeoutLength = 7400;
for (i = 0; i < cities.length; i++) {
timeouts[i] = setTimeout("callCity('" + cities[i] +"')", timeoutLength * (i + 1));
}
$('.switcher').mouseover(function() {
for(key in timeouts){
clearTimeout(timeouts[key]);
}
});
});
function callCity(city){
$(city).trigger('click');
}
我试过了:
$(city).trigger('mouseover');
$(city).trigger('onMouseOver');
然后我看到了关于jquery live()的一些信息,并尝试了这个:
$("a.fb").live('onMouseOver', function(){
$(city).trigger();
});
和此:
$("a.fb").live('mouseover', function(){
$(city).trigger();
});
然而,没有效果。在所有情况下,地图继续以相同的方式运行,click事件继续工作,并且不返回任何错误。
如何在鼠标悬停时继续停止动画以及触发点击事件?
答案 0 :(得分:0)
尝试阻止click事件做任何事情并使用jQuery.load自己加载内容?
var loadContent = function(var1, var2) {
// do loading content here using jQuery.load
}
$('.switcher').mouseover(function() {
var cityName = $(this).attr('id');
loadContent('#world', cityName+'.php');
});
$('.switcher').click(function(e) {
e.preventDefault();
alert('click will do nothing');
});
答案 1 :(得分:0)
修复非常简单......
$(城市).trigger( '鼠标悬停');
是正确的,我只需要在实际的.js中将'click'更改为'mouseover'。