2011-04-29 61 views
1

任何人都可以告訴我爲什麼下面的代碼不顯示div股票代碼?它只是顯示div主..根據變量值隱藏和顯示div

非常感謝!

<script language="javascript" src="http://code.jquery.com/jquery-1.4.4.min.js"></script> 
<script type="text/javascript"> 
    $(document).ready(function(){ 


     $('.ticker').hide(); 
     $('.main').show(); 
     $('.other').hide(); 

    }) 
</script> 
<?php 

$main = 'ticker'; 

if ($main=="ticker"){?> 
    <script type="text/javascript"> //alert('flag'); //this alert shows ok 
     $('.ticker').show(); 
     $('.main').hide(); 
     $('.other').hide(); 
    </script> 
    <?php 


} 

?> 
<div class="main">main</div> 
<div class="ticker">ticker</div> 
<div class="other">other</div> 

回答

3

看起來像是在第二個腳本塊中缺少$(document).ready()

+0

謝謝,成功了!不知道你需要$(document).ready(),即使頁面已經加載。 – user712027 2011-04-29 07:40:40

+0

如果您將腳本塊置於您嘗試查詢的元素下,但它可能會奏效,但由於當您嘗試查詢元素時,該元素尚未出現在頁面上,因此javascript失敗。最好的做法是在頁面加載包裝中包裝所有jQuery(和JavaScript)。 – Derek 2011-04-29 07:44:20

+1

但頁面**不是在那個位置加載的.. – 2011-04-29 07:45:24

0

試試這個

<?php  
$main = 'ticker';  
if ($main=="ticker"){?> 
<script type="text/javascript"> //alert('flag'); //this alert shows ok 
    $(document).ready(function() { 
     $('.ticker').show(); 
     $('.main').hide(); 
     $('.other').hide(); 
    }); 
</script> 
    <?php 
} 
?> 
+0

感謝Starx,但是當頁面首次加載並顯示主要內容時,我需要隱藏行情。這就是我使用該代碼的原因。 – user712027 2011-04-29 07:34:29

+0

我只是將你的代碼包裝在'$(document).ready()' – Starx 2011-04-29 07:38:00

1

第一個腳本塊說:「當文檔準備好,顯示和隱藏這些類的元素」。

第二個腳本塊顯示「顯示並隱藏這些類的元素立即」。

在執行第二個腳本塊時,這些類沒有元素(所以它沒有效果)。即使有,第一個腳本塊會在幾秒鐘後覆蓋它們。

你可能想這樣做:

<?php 
    $main = 'ticker'; 
?> 
<div class="main">main</div> 
<div class="ticker">ticker</div> 
<div class="other">other</div> 
<script language="javascript" src="http://code.jquery.com/jquery-1.4.4.min.js"></script> 
<script type="text/javascript"> 
     $('.ticker, .main, .other').hide(); 
     $('.<?php echo $main ?>').show(); 
    }) 
</script> 
0

更好一點;)

<script language="javascript" src="http://code.jquery.com/jquery-1.4.4.min.js"></script> 
<script type="text/javascript"> 
    $(function(){ 
     $('.hide').hide(); 
     $('.show').show(); 
    }); 
</script> 
<?php 
$main = 'ticker'; 
?> 
<div class="main <?php echo ($main == 'main') ? 'show' : 'hide'; ?>">main</div> 
<div class="ticker <?php echo ($main == 'ticker') ? 'show' : 'hide'; ?>">ticker</div> 
<div class="other <?php echo ($main == 'other') ? 'show' : 'hide'; ?>">other</div>