这个(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