這個(jQuery)函數在jQuery(document).ready
和jQuery(document).resize
上被調用。它運行良好的ready
條件但resize
事件有點棘手。他們要麼繼承功能,要麼就是每次調整大小時滑動窗口看起來都很火。Javascript(jQuery)事件失敗。我怎樣才能解決這個問題?
(function(jQuery){
jQuery.fn.responsive = function() {
// Vars
var menuButton = jQuery('nav #menu-button');
var menuItems = jQuery('nav ul');
var menuLinks = jQuery('nav ul li a.scroll');
var viewportW = jQuery(window).width();
var viewportH = jQuery(window).height();
// Menu links
menuLinks.click(function(e){
if (viewportW > 800) {
e.preventDefault();
e.stopPropagation();
var pos = jQuery(this.hash).offset().top;
jQuery('html,body').animate({scrollTop: pos}, 1000);
} else if (viewportW < 799) {
e.stopPropagation();
menuItems.slideUp('fast'); // Hide menu on click
}
});
// Menu button
menuButton.click(function(e){
menuItems.slideToggle('fast');
//e.stopPropagation();
//e.preventDefault();
});
}
})(jQuery);
我在做什麼錯?我試圖殺死事件傳播,但無濟於事。
編輯:
這將運行後:
// Doc ready
jQuery(document).ready(function() {
// Run functions
jQuery().responsive();
});
// On resize
jQuery(window).resize(function(){
jQuery().responsive();
});
我在代碼中看不到.resize()。 – Bergi 2012-04-16 01:07:18
你真的想要殺死準備好的和/或調整大小的事件嗎? – Bergi 2012-04-16 01:07:53