账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    JavaScript中onclick函数return false 未被触发是怎么回事?
    58
    0

    按照javascript dom 编程艺术关于网页显示图片的那部分内容敲出来的代码,其中有一段需要输入onclick="showPic(this);return false;"用于阻止网页弹出新的链接来查看图片,但是最后运行的时候还是弹出新的链接了,具体代码如下:


    <!DOCTYPE html>
    <html lang="en">
    <head>
      <meta charset="utf-8"/>
      <title>My Gallery</title>
    </head>
    <body>
      <h1>snapshots</h1>
      <ul>
        <li>
        <a href="images/do or die.jpg" onclick="showPic(this);return false;" title="do or die">DO</a>
        </li>
        <li>
        <a href="images/hand.jpg" onclick="showPic(this);return false;" title="hand">HAND</a>
        </li>
        <li>
        <a href="images/phrase.jpg" onclick="showPic(this);return false;" title="phrase">Phrase</a>
        </li>
      </ul>
      <img id="placeholder" src="images/dog.jpg" alt="My Gallery"/>
      <script>
      function showPic(whichpic)
      {var source=whichpic.getAttribute ("href");
      var placeholder=document.getElenmentById ("placeholder");
      placeholder.setAttribute("src",source);}
      </script>
    </body>
    </html>   
    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 碎情漂移ド 普通会员 1楼

      在JavaScript中,onclick函数用于指定当用户单击一个元素时执行的函数。如果 onclick 函数返回 false,那么该元素就不会触发任何操作,如弹出警告框或改变元素的样式。

      在你的代码中,onclick函数返回 false,但是该元素并没有被触发。可能的原因有:

      1. onclick 事件没有绑定到元素上:你可能在元素上绑定了 onclick 事件,但是在你的代码中没有执行这个事件的绑定。你需要在元素上绑定 onclick 事件,然后在回调函数中执行 return false。

      2. return false 在 JavaScript 中没有被解释:在 JavaScript 中,onclick函数返回 false 会被解释为未定义,而不是在执行任何操作。你需要确保 return false 在 JavaScript 中被正确解释和执行。

      3. 返回 false 的元素没有被显式地移除:你可能在元素上添加了 onclick 事件,但是没有显式移除它,导致 onclick 事件仍然可以触发。你需要在元素上移除 onclick 事件。

      以下是一个示例代码,演示了如何在元素上绑定了 onclick 事件,然后在回调函数中执行 return false:

      ```javascript const button = document.getElementById('myButton');

      button.onclick = function() { return false; };

      // 现在,按钮上的 onclick 事件会触发,并且返回 false ```

      在这个示例中,当用户点击按钮时,return false 会被解释为未定义,而不是触发任何操作。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部