javascript - 为什么我的“全部删除”按钮需要双击才能起作用?

标签 javascript

所以,我添加了一个删除所有按钮并且它可以工作,唯一的问题是需要双击它才能使其工作。

请问有什么问题吗?谢谢你:)

我在此处添加了用于创建按钮的代码:

<body>
<!--for everything in the navigation part including the add favorite bar-->
<div class="topnav">

    <div class="addFave">
        <!--the text bar-->
        <input type="text" name="enter" class="enter" value="" id="added"  placeholder= "Add Favorites"/>
        <!--the enter button-->
        <input type="button" value="Enter" id = "addIt" OnClick="adding()" />
        <!--for the script of the add favorite bar to add its functions-->
        <script type="text/javascript">
            var faves = [];

            var y = document.getElementById("added");
                function adding() {
                    faves.push(y.value);
                    document.getElementById("faveLists").innerHTML = faves;
                }
            var input = document.getElementById("added");
                input.addEventListener("keyup", function(event) {
                    event.preventDefault();
                    if (event.keyCode === 13) {
                    document.getElementById("addIt").click();
                }
            }); 
        </script>
    </div>
</div>


<br />

<div class="buttons">
    <button onclick="eradicateFaves()">Remove All Favorite</button>


    <script>
-coding to remove all the favorites on the list-->
        function eradicateFaves(){
            document.getElementById("faveLists").innerHTML = faves;
                while(faves.length > 0){                   
                faves.shift();
            }
        }    

    </script>
</div>
<p id = "faveLists"></p>

最佳答案

while(faves.length > 0){                   
    faves.shift();
}

为什么不直接用 faves = [] 来清空它呢?在分配列表之前不应该清空列表吗?这就是为什么您需要点击两次;第一次重新分配当前列表然后清空它,第二次分配空列表然后不执行任何操作,因为它已经是空的。所以,试试这个:

function eradicateFaves(){
    faves = [];
    document.getElementById("faveLists").innerHTML = faves;
}

关于javascript - 为什么我的“全部删除”按钮需要双击才能起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53773494/

相关文章:

javascript - 将图像拖放到 Chrome 中的 contenteditable 到光标处

javascript - 如何从另一个文件中的 php 和 javascript 获取值

javascript - ng-repeat生成的元素无法被操作

c# - Microsoft 的 .NET GWT 解决方案是什么?

javascript - 尝试检查页面上的任何复选框是否被选中

javascript - 无法导入模块 : You may need an appropriate loader

javascript - 单击下载按钮从 URL : dots in the URL are all replaced by underscore? 下载图像

javascript - 向数据表行添加多个自定义属性

javascript - 单击某个元素时如何渲染 MathJax?

Javascript:如何访问 IIFE 的属性和方法