我使用此代碼創建一個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