我在我的站点中使用jQuery,我希望在某个div可见时触发某些操作
是否可以将某种“isvisible”事件处理程序附加到任意div,并在使div可见时运行某些代码
我想要以下伪代码:
$(函数(){
$('#contentDiv')。可见(函数(){
警惕(“做某事”);
});
});
在contentDiv实际可见之前,不应触发警报(“do something”)代码
谢谢
您可以始终添加到原始的.show()方法中,这样您就不必在每次显示某个内容时触发事件,或者如果您需要它来处理遗留代码:
Jquery扩展:
jQuery(函数($){
var _oldShow=$.fn.show;
$.fn.show=函数(速度、旧回调){
返回$(this).each(函数(){
var obj=$(此),
newCallback=函数(){
if($.isFunction(oldCallback)){
oldCallback.apply(obj);
}
对象触发器(“后处理”);
};
//如果你想的话,你可以在节目开始前触发
对象触发器(“显示前”);
//现在使用旧函数显示传递新回调的元素
_应用(obj[speed,newCallback]);
});
}
});
用法示例:
jQuery(函数($){
$(“#测试”)
.bind(’beforeShow’,function(){
警惕(“在表演之前”);
})
.bind(’afterShow’,function(){
警报(“余波”);
})
.show(1000,函数(){
警报(“显示中回调”);
})
.show();
});
这可以有效地让您在显示前和显示后执行某些操作,同时仍然执行原始.show()方法的正常行为
您还可以创建另一个方法,这样就不必重写原始的.show()方法。