2011-04-29 79 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>