2013-03-22 41 views
0

我有一個簡單的jQuery覆蓋設置在aspx頁面上。下面是相關代碼:如何僅在jquery覆蓋被調用時才執行javascript?

<img rel="#1208" src="/images/testsmall.png" /> 
<div class="simple_overlay" id="1208"><img src="/images/testlarge.png" /></div> 

使用jQuery庫:

http://cdn.jquerytools.org/1.2.7/full/jquery.tools.min.js 

和腳本:

<script> 
    $(document).ready(function() { 
    $("img[rel]").overlay(); 
    }); 
</script> 

在頁面上本身就存在的一個部分一個JavaScript的滾動條,該代碼位於裏面的:

<head> 
    <script type="text/javascript"> 
     $(document).ready(function() { 
      $('#scrollbar2').tinyscrollbar(); 
     }); 
    </script> 
</head> 

事情是,我想只在覆蓋被調用時禁用滾動條。雖然我知道如何用javascript的hide()方法隱藏滾動條,但我不確定如何編寫代碼才能在調用覆蓋時調用它。那,或者如果有比hide()方法更好的方法來做到這一點。

謝謝。

回答

1

我不知道是否有比滾動條上調用.hide()一個更好的方法,但你可以使用覆蓋的onLoadonClose事件來控制,當它應該發生:

$("img[rel]").overlay({ 
    onLoad: function(event) { 
     // hide the scrollbar 
    }, 
    onClose: function(event) { 
     // show the scrollbar 
    } 
}); 

關於覆蓋層的選項,事件和方法的更多信息可以在jQuery tools Overlay documentation中找到。有關jQuery工具事件的更多一般信息可以參見here

+0

這個伎倆!我使用了onBeforeLoad而不是onLoad,併爲hide - 。hide(「fast」)添加了一個速度 - 以便覆蓋的淡入淡出不會在滾動條突然消失之前先發生。 – neil1967 2013-03-22 15:14:03

0

試試這個代碼:

$.getScript("ajax/test.js", function(data, textStatus, jqxhr) { 
console.log(data); //data returned 
console.log(textStatus); //success 
console.log(jqxhr.status); //200 
console.log('Load was performed.'); 
}); 

應該做的伎倆。看看同樣在這個:http://api.jquery.com/jQuery.getScript/

0
$(document).ready(function() { 
      var callBack = function(){ 
       $('#scrollbar2').tinyscrollbar(); 
      }; 
      $("img[rel]").overlay(callBack); 
      // then call this callback function inside overlay function 
     }); 
相關問題