我使用此代码创建一个OnShow中事件:自定义jQuery的事件仅触发一次
(function($){
$.fn.extend({
onShow: function(callback, unbind){
return this.each(function(){
var obj = this;
var bindopt = (unbind==undefined)?true:unbind;
if($.isFunction(callback)){
if($(this).is(':hidden')){
var checkVis = function(){
if($(obj).is(':visible')){
callback.call();
if(bindopt){
$('body').unbind('click keyup keydown', checkVis);
}
}
}
$('body').bind('click keyup keydown', checkVis);
}
else{
callback.call();
}
}
});
}
});
})(jQuery);
然后我打电话吧:
$(document).ready(function(){
$('.mydiv').onShow(function(){
alert('myDiv is now showing');
});
});
我也拨动链接,触发div来显示和隐藏:
$('.myLink').click(function(){
$(".mydiv").slideToggle();
});
终于下面是HTML:
<a href="#" class="myLink">Step 1</a>
<div class="myDiv">content here</div>
问题是,当我在加载页面后单击链接时,警报仅显示一次。如果我再次点击它,我不会显示。
任何想法为什么?
HTML与此一起去哪里? – Sparky
什么给:$('。mydiv')。onShow(function(null,false){alert('myDiv is now showing'); }); –
我已经添加了上面的html,谢谢 – Satch3000