2012-05-23 39 views
1

我对jQuery/JS非常新颖,并且在特定窗口大小中添加或删除函数时几乎没有问题。 如果您可以查看我的代码并进行更正,我将不胜感激。jQuery:在特定窗口大小中添加或删除函数

详细地说,我使用tinyscrollbar插件,我只想出现在一个特定的窗口大小(比如说650px的窗口宽度)。

这里是我的代码:

<!--****preload latest jQuery and tinyscrollbar plugin, then...****--> 

<script type="text/javascript"> 

function newsScroll() { 
    $("#newsScroll").tinyscrollbar(); 
}; 

/* 
if windows width is less than 650px, remove newsScroll function and 
switch DIV ID to "spNewsScroll" and vice versa. 
*/ 
function scrollOnOff(width) { 
    width = parseInt(width); 
    if (width < 650) { 
     $(window).unbind(newsScroll); 
     $("#newsScroll").attr('id','spNewsScroll'); 
    } else { 
     $(window).bind(newsScroll); 
     $("#spNewsScroll").attr('id','newsScroll'); 
    } 
}; 

$(function() { 
    //get window size as of now. 
    scrollOnOff($(this).width()); 
    $(window).resize(function() { 
     scrollOnOff($(this).width()); 
    });  
}); 

</script> 
+0

你有没有看[doco for'.bind()'](http://api.jquery.com/bind/ ) - 它期望一个事件类型作为它的第一个参数,回调函数作为它的第二个或第三个参数...... – nnnnnn

回答

2

试试这个,测试,:-)工作

现场演示:http://jsfiddle.net/oscarj24/fUsnj/21/

function scrollOnOff(width) { 
    width = parseInt(width); 
    if(width < 650){ 
     $(window).trigger('newsScroll'); 
     $('#newsScroll').attr('id','spNewsScroll'); 
    } else { 
     $('.scrollbar').hide(); 
     $('#spNewsScroll').attr('id','newsScroll'); 
    } 
}; 

$(function() { 

    $(window).bind('newsScroll', function(e) { 
     $('.scrollbar').show(); 
     $('#newsScroll').tinyscrollbar(); 
    }); 

    var screenWidth = $(this).width(); 
    scrollOnOff(screenWidth); 

    $(window).on("resize", function(event){ 
     var w = $(this).width(); 
     scrollOnOff(w);     
    }); 

}); 

+0

非常感谢您的快速回复,奥斯卡! 虽然我实施了你的建议,但它似乎并没有工作。我为此创建了jsFiddle,你会看看代码吗? 1.在页面加载时不加载1.tinyscrollbar。 2.当我改变窗口大小(拖动中心隔板来改变窗口的大小。) http://jsfiddle.net/nori2tae/fUsnj/ (注释。jQuery1.7.2和tinyscrollbar.js附于本小提琴( http://baijs.nl/tinyscrollbar/js/jquery.tinyscrollbar.min.js))。 – norixxx

+0

好吧,让我看看并让你知道。 –

+0

@norixxx试试这个:http://jsfiddle.net/oscarj24/fUsnj/21/我也会更新这篇文章。 –