2012-04-09 64 views
1

好吧,我很難隱藏一些佈局部分(div在我的佈局頁面和即時通訊使用mvc3)。隱藏佈局頁面中的元素mvc3

我有這個js片段基本上是主要的邏輯:

$('.contentExpand').bind('click', function() { 
      $.cookie('right_container_visible', "false"); 
     }); 

     //Cookies Functions======================================================== 
     //Cookie for showing the right container 
     if ($.cookie('right_container_visible') === 'false') { 
      if ($('#RightContainer:visible')) { 
       $('#RightContainer').hide(); 
      } 
      $.cookie('right_container_visible', null); 
     } else { 
      if ($('#RightContainer:hidden')) { 
       $('#RightContainer').show(); 
      } 
     } 

,你可以看到,即時通訊hidding每當我點擊進入一些鏈接具有特定CSS容器。這對於簡單的測試似乎很好。但是當我開始測試它像

.contentExpand click - > detail button click - > .contentExpand click - > [這裏意外的問題:$ .cookie('right_container_visible',null);是閱讀,但它並沒有設置爲空,如果它忽略它]

我試圖瞭解什麼是正確的邏輯來實現這一點。任何人都知道我能如何解決這個問題

回答

0

是爲我工作是建立一個可以捕捉元素的大小調整事件的最好的事情。我從另一篇文章中得到這個,但我不記得哪一個。無論如何,這裏是事件代碼:

//Event to catch rezising============================================================================ 
(function() { 
var interval; 
jQuery.event.special.contentchange = { 
    setup: function() { 
     var self = this, 
     $this = $(this), 
     $originalContent = $this.text(); 
     interval = setInterval(function() { 
      if ($originalContent != $this.text()) { 
       $originalContent = $this.text(); 
       jQuery.event.handle.call(self, { type: 'contentchange' }); 
      } 
     }, 100); 
    }, 
    teardown: function() { 
     clearInterval(interval); 
    } 
}; 
})(); 
//========================================================================================= 

//Function to resize the right container============================================================ 
(function ($) { 
$.fn.fixRightContainer = function() { 

    this.each(function() { 

     var width = $(this).width(); 
     var parentWidth = $(this).offsetParent().width(); 
     var percent = Math.round(100 * width/parentWidth); 
     if (percent > 62) { 
      $('#RightContainer').remove(); 
     } 
    }); 
}; 
})(jQuery); 
//=================================================================================================== 
0

最簡單的解決方案是在綁定的代理外部創建變量。 例如:

var rightContVisibility = $.cookie('right_container_visible'); 
$('.contentExpand').bind('click', function() { 
      $.cookie('right_container_visible', "false"); 
      rightContVisibility = "false"; 
     }); 

if (rightContVisibility === 'false') { 
... 
}