Я отбрасываю заголовок, когда div зависает, я хочу отключить эффект, когда мышь остается над div.... поэтому пользователь должен вытащить мышь, прежде чем надпись будет отображаться снова. Я могу сделать это с несвязанным, но проблема в том, что он убивает функцию выключения мыши:
$('.lowerFrontStripRow img').hover(
function(){
$('.orbit-caption-bottom#bottomThumb'+$(this).data("thumbid")).slideDown();
$('.lowerFrontStripRow img').unbind();
},
function(){
$('.lowerFrontStripRow img').bind(hover);
$('.orbit-caption-bottom').slideUp();
}
);
Как я могу отключить действие до отключения мыши?
Благодаря,
Алан.
То, что вы, похоже, хотите сделать, это:
Отобразить, если:
Отключить, если выполнено одно из следующих условий:
Прежде всего, hover(...)
является сокращением для .on( 'mouseover' )
и .on( 'mouseout' )
; Он фактически связывает эти два события, и вы должны развязать эти два события. У вас также возникают проблемы с вызовом функции mouseover несколько раз? Почему бы не сохранить некоторую информацию о элементе, чтобы предотвратить это?
$('.lowerFrontStripRow img').on( 'mouseover', function() {
if( $(this).data( 'displaying' ) != 1 ) {
$(this).data( 'displaying', 1 );
$('.orbit-caption-bottom'+$(this).data("thumbid")).slideDown();
setTimeout( function() { $('.orbit-caption-bottom').slideUp(); }, 3000 );
}
} ).on( 'mouseout', function() {
$(this).data( 'displaying', 0 );
$('.orbit-caption-bottom'+$(this).data("thumbid")).slideUp();
} );
Первым параметром .unbind()
является eventType
так:
$('.lowerFrontStripRow img').unbind('hover');
будет правильным синтаксисом для открепления ваших функций.
Btw, вероятно, вы должны изменить весь подход к проблеме.
Только это должно работать
$('.lowerFrontStripRow img').hover(
function(){
$('.orbit-caption-bottom#bottomThumb'+$(this).data("thumbid")).slideDown();
},
function(){
$('.orbit-caption-bottom').slideUp();
}
);
unbind()
что?