onclick事件不起作用

时间:2014-08-06 18:27:12

标签: javascript php

在下面的代码中点击按钮对应的价格应该显示,点击这里文字shud隐藏但它没有工作没有任何反应

<body>
<?php $itemprice  = array("$10","$3","$5","$7");?>
<?php $len = count($itemprice);
$i=0; 
?>

<div class= "gallery">
<?php while ($i<$len):?>
<div class="index">
<div class="clickbtn">
    <a id="hiddenprice-<?php echo $i; ?>" href="http://www.bookurl.com" onclick="show_price(<?php echo $i; ?>)" target="_blank">
   Click Here to reveal price <?php  echo $itemprice[$i]; ?>
    </a>
<a id="revealedprice-<?php echo $i; ?>" style="display:none;" href="http://www.bookurl.com"><?php  echo $itemprice[$i]; ?></a>
</div>

</div> 
<?php $i++;endwhile;
?>
<script>
   function show_price(<?php echo $i; ?>) {
       document.getElementById('revealedprice-<?php echo $i; ?>').style.display = '';
       document.getElementById('hiddenprice-<?php echo $i; ?>').style.display = 'none';
   }
</script>
</div>


</body>

你可以在http://myproject.byethost7.com/test1.php

看到结果

2 个答案:

答案 0 :(得分:4)

你在PHP代码和javascript代码之间乱七八糟。

此外,您还不清楚您尝试使用该锚点做什么。如果您定义了href,则用户将导航到该URL,除非您取消导航,否则onclick代码与您的情况无关。

在我看来,你想要这样做。请注意,如果在新窗口或新标签页上打开网址,则无法控制100%。

<强> HTML

<a id="hiddenprice-<?php echo $i; ?>" href="#" onclick="show_price(<?php echo $i; ?>)">
    Click Here to reveal price <?php  echo $itemprice[$i]; ?>
</a>

<强> JS

<script>
   function show_price(num) {
      document.getElementById('revealedprice-' + num).style.display = '';
      document.getElementById('hiddenprice-' + num).style.display = 'none';
      window.open("http://www.bookurl.com");
      return false;
  }
</script>

num上注意show_price,添加window.openreturn false以取消默认锚行为(导航到href)

答案 1 :(得分:1)

不要相信你看到的一切:)

如果您使用之前的答案而不理解,会附加什么?试试,但你会有一个惊喜。

说明

<a id="hiddenprice-5" href="http://www.bookurl.com" onclick="show_price(5)" target="_blank">
Click Here to reveal price 52
</a>

Show_price函数现已明确定义。但。但是你正在使用一个链接 - 一个标签 - 。当你要点击时,效果会很好,但仍然有重定向:用户永远不会看到显示的价格。

为了避免这种“亲吻酷效应”,你必须使用另一个标签而不是a,或者添加一个返回false;到你的show_price函数。