javascript - 运行一次 JS 函数

标签 javascript html

我有这个 JS 函数:

<script type="text/javascript">
                    var counter = <?php echo $oak; ?>;
                    function myFunction() {
                        counter++;
                        document.getElementById('countervalue').innerHTML = counter;
                    }
                </script>

单击图像后将触发此函数。我的问题是我希望它只在第一次按下图像时触发。有任何想法吗?提前致谢。

html代码:

<div class="cut_oak_tree">
            <img src="http://www.pbpixels.com/x/images/oak.png" onclick="loadXMLDoc(this.outerHTML), myFunction()" /> <!--DO NOT CHANGE SRC -->
            <br>
            <img src="http://www.pbpixels.com/x/images/oak.png " onclick="loadXMLDoc(this.outerHTML), myFunction()" /> <!--DO NOT CHANGE SRC -->
            <img src="http://www.pbpixels.com/x/images/oak.png  " onclick="loadXMLDoc(this.outerHTML), myFunction()" /> <!--DO NOT CHANGE SRC -->
        </div>

最佳答案

尝试 this code :

在事件调用中添加 this(onclick="myFunction(this)") 然后你的函数看起来像 function myFunction(img) {。然后在里面删除它的 click 处理程序:

img.onclick = null;

最终结果是:

function myFunction(img) {
    counter++;
    document.getElementById('countervalue').innerHTML = counter;
    img.onclick = null;
}

还有一个图片示例:

<img src="http://www.pbpixels.com/x/images/oak.png  " onclick="myFunction(this)" />

我不会像@SLoW 建议的那样使用boolean,因为那样你就无法知道哪个图像已经被点击了。为此,您必须使用一个对象并存储每个图像 id - 或类似的东西 - 及其 clicked 状态。

关于javascript - 运行一次 JS 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21755710/

相关文章:

javascript - VarName 未定义,请修复或添加/*global VarName*/Cloud9

javascript - 在响应选项卡内 Bootstrap 响应表

javascript - HTML 生成的 JavaScript 不能与其他 JavaScript 一起工作

javascript - 字符串为空时柏树中的 .type() 方法

javascript - 两个用户通过 websocket 编辑输入的问题

javascript - Famo.us 最大接触点(Windows 8 + Chrome)

html - 为什么 max-width 在表中的列上的行为与直觉相反?

javascript - 在 Jquery 中循环遍历定义大小的元素?

html - 如何在 rails 4 中将部分表单呈现为水平表单

javascript - 如何将实时音频从浏览器流式传输到 Icecast 服务器