Событие не срабатывает
У меня есть эти фрагменты кода, которые должны содержать две функции и вызывать события для них. Однако по какой-то причине событие, похоже, не сработало. Они регистрируются на консоли, как и ожидалось, но событие никогда не запускается.
//Show backstage event
(function( $, oldRem ){
backstage.show = function(){
console.log("yup, I'm the right one");
var resp = oldRem.apply( this, arguments );
$("#backstageArea").trigger("showBackstage");
return(resp);
};
})( jQuery, backstage.show );
//Hide backstage event
(function( $, oldRem ){
backstage.hide = function(){
console.log("And so am I.");
var resp = oldRem.apply( this, arguments );
if(anim && config.chkAnimate) {setTimeout( 'jQuery("#backstageArea").trigger("hideBackstage")', config.animDuration);}
else {$("#backstageArea").trigger("hideBackstage");}
return(resp);
};
})( jQuery, backstage.hide );
//Resize never logs its console message.
jQuery.bind("hideBackstage", function(){topbar.resize();});
jQuery.bind("showBackstage", function(){topbar.resize();});
1 ответ
Решение
Вы должны указать, какой элемент (ы) bind
чтобы, так что попробуйте:
jQuery("#backstageArea").bind(...
вместо
jQuery.bind(...
(И если вы используете JQuery версии 1.7+, вы можете переключиться на .on()
Метод - будет иметь тот же эффект для этой цели, но это рекомендуемый способ делать вещи начиная с v1.7.)