Сначала вы используете slider.controls
для нацеливания на элемент (ы) управления, затем вы используете slider.$controls
для нацеливания на тот же элемент (ы).Я думаю, вам нужно решить, какой из них.
Кроме того, внутри функции обратного вызова вы можете использовать this
в качестве ссылки на элемент, который вызвал событие:
$(slider.controls).bind('mouseover', function () {
$(this)...
});
В противном случае, если вы хотите вывести все элементы управления одновременно, вам просто нужно выяснить, нужно ли использовать slider.$controls
или slider.controls
.
ОБНОВЛЕНИЕ
Я вижу, вы изменили свой вопрос, и теперь вы используете slider.$controls
оба раза.Вы должны поместить свой код mouseover
в обработчик событий document.ready
, чтобы вы знали, что элементы 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);
};
Также я заметил, что вы включили slider.$controls
в объект jQuery в первый раз,но не второй, обязательно сделайте это, если slider.$controls
уже не является объектом jQuery (много раз разработчики помещают $
в качестве первого символа имени переменной, чтобы обозначить, что это объект jQuery).