Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/436.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 鼠标悬停时的Jquery fadeTo_Javascript_Jquery_Function_Fadeto - Fatal编程技术网

Javascript 鼠标悬停时的Jquery fadeTo

Javascript 鼠标悬停时的Jquery fadeTo,javascript,jquery,function,fadeto,Javascript,Jquery,Function,Fadeto,我正在使用一个名为anything slider的插件,试图让控件在4秒后淡出(这是有效的),然后在鼠标上方将不透明度改回1(不起作用)。这就是我到目前为止所拥有的…我做错了什么 $(slider.$controls).mouseover(function() slider.$controls.fadeTo(400, 1.0); }); $(function () { var fadeTime = 400, fadeDelay = 4000, time

我正在使用一个名为anything slider的插件,试图让控件在4秒后淡出(这是有效的),然后在鼠标上方将不透明度改回1(不起作用)。这就是我到目前为止所拥有的…我做错了什么

$(slider.$controls).mouseover(function() 
slider.$controls.fadeTo(400, 1.0);
});

$(function () {
    var fadeTime = 400,
        fadeDelay = 4000,
        timer, hideControls = function (slider) {
            clearTimeout(timer);
            setTimeout(function () {
                slider.$controls.fadeTo(fadeTime, 0.3);
                $('.tooltip').fadeOut(fadeTime);
            }, fadeDelay);
        };
});

您应该将每个
滑块.controls.fadeTo
替换为
滑块.controls.fadeTo

$(slider.controls).mouseover(function() 

    $(this).fadeTo(400, 1.0);

});

第2行出现语法错误。你在哪里

slider.$controls.fadeTo...
你应该

$(this).fadeTo...

因为一旦您在第1行输入了匿名函数,
this
对象现在引用您正在执行此代码的DOM元素,它是由
slider.controls
表示的元素。首先,您使用
slider.controls
以控制元素为目标,然后使用
滑块。$controls
以相同的元素为目标。我想你需要决定是哪一个

此外,在回调函数中,您可以使用
this
作为对已触发事件的元素的引用:

$(slider.controls).bind('mouseover', function () {
    $(this)...
});

否则,如果要同时淡入所有控件,则只需确定是否需要使用
滑块。$controls
滑块。controls

更新


我看到您已经更改了问题,现在您正在使用
滑块。$controls
两次。您应该将
mouseover
代码放在
文档中。就绪
事件处理程序,以便知道DOM元素可用:

$(function () {

    slider.$controls.mouseover(function() 
        slider.$controls.fadeTo(400, 1.0);
    });

    var fadeTime = 400,
        fadeDelay = 4000,
        timer, hideControls = function (slider) {
            clearTimeout(timer);
            setTimeout(function () {
                slider.$controls.fadeTo(fadeTime, 0.3);
                $('.tooltip').fadeOut(fadeTime);
            }, fadeDelay);
        };

我还注意到您第一次在jQuery对象中包装了
slider.$controls
,但不是第二次,如果
slider.$controls
还不是jQuery对象,请确保这样做。$controls已经不是jQuery对象(很多时候开发人员将
$
作为变量名的第一个字符来表示它是jQuery对象).

滑块。$controls
有效,是否有理由更改它?我从语法角度知道它有效,但代码应该一致;要么将它们全部设为slider.$controls,要么设为slider.controls。第二个将其淡入不透明度0.3的功能非常有效。我仍然无法让鼠标盖工作…你能发布一个链接到该页面吗?