jquery禁用一个函数

时间:2014-02-15 19:13:00

标签: jquery twitter-bootstrap

对于我的一个项目,我们有一个专有的CMS,它首先在客户端实例目录中查找文件,如果没有找到,则默认为公共目录。所以在公共目录中,我有shell.js,它包含一个在bootstrap 2.3.2中设置崩溃div的初始状态的函数。我需要能够在客户端级别禁用此功能,同时仍然具有公共级别的可用功能。我在js / jquery很绿,有人可以帮帮我吗?

shell.js中的代码就是这个......

/*******************************/
/*  TOGGLE BUTTON
/*******************************/
var toggleBlock = function() {
    var windowsize = $(window).width(),
        isDesktop = windowsize > 765;

    $("#quicksearch").toggleClass("collapse in", isDesktop);
    $("#quicksearch").toggleClass("collapse out", !isDesktop);
    $("#sidebar").toggleClass("collapse in", isDesktop);
    $("#sidebar").toggleClass("collapse out", !isDesktop);
}
$(document).ready(toggleBlock);
$(window).on("resize.showContent", toggleBlock);
toggleBlock();

将.unbind()成为正确的方向吗?

1 个答案:

答案 0 :(得分:1)

一个非常粗糙的解决方案:

  var disabledFlag = false;

  var toggleBlock = function() {
    if(!disabledFlag){
      var windowsize = $(window).width(),
      isDesktop = windowsize > 765;

      $("#quicksearch").toggleClass("collapse in", isDesktop);
      $("#quicksearch").toggleClass("collapse out", !isDesktop);
      $("#sidebar").toggleClass("collapse in", isDesktop);
      $("#sidebar").toggleClass("collapse out", !isDesktop);
   }
}

然后在代码的其他地方将标志翻转为true,这将阻止函数执行有意义的代码:

 disabledFlag = true;