如何使用 JavaScript 创建前后按钮,并在结束位置使其不可用?


使用 JavaScript 创建前后按钮并在结束位置使其不可用有很多方法。我们将介绍两种实现此功能的方法——一种使用普通的 if 条件,另一种使用“disabled”属性。第二种方法利用“disabled”属性使按钮不可点击,并更新按钮样式以表示结束位置的不可用状态。通过实现这些技术,我们可以轻松地在元素集中导航,使用户体验更加流畅和直观。

让我们看看在 JavaScript 中创建此类按钮的两种方法的示例。

仅使用 if 条件

我们将创建两个按钮,“prev”和“next”,并为其添加点击事件监听器,并使用变量跟踪当前位置。在点击按钮时,它会更新当前位置并调用一个函数来更新 UI。此方法将通过使用 if 条件使按钮处于可用或不可用状态。

语法

用户可以按照以下语法创建在结束位置不可用的前后按钮。

// for prev button
if (currentPosition > 0) {
   currentPosition--;
   updateContent() ;
}

// for next button
if (currentPosition < maxPosition) {
   currentPosition++;
   updateContent();
}
function updateContent() {

   // update UI or make API call here
} 

我们通过应用简单的 if 条件使前后按钮在结束位置不可用。

方法

在这种方法中,我们按照以下步骤操作:

步骤 1 - 创建一个 HTML 页面,其中包含两个按钮,“prev”和“next”,以及一个带有 id 为“content”的空 div。

步骤 2 - 定义一个 currentPosition 变量并将其设置为 0。

步骤 3 - 定义一个 maxPosition 变量并将其设置为元素的最大数量。

步骤 4 - 为“prev”按钮添加点击事件监听器。

步骤 4.1 - 在“prev”按钮的点击事件监听器中,检查 currentPosition 是否大于 0。如果是,则将 currentPosition 减 1 并调用 updateContent() 函数。

步骤 5 - 为“next”按钮添加点击事件监听器。

步骤 5.1 - 在“next”按钮的点击事件监听器中,检查 currentPosition 是否小于 maxPosition。如果是,则将 currentPosition 加 1 并调用 updateContent() 函数。

步骤 6 - 创建一个 updateContent() 函数来更新 UI 或进行 API 调用。

步骤 6.1 - 在 updateContent() 函数中,使用 currentPosition 值更新“content”div 的 innerHTML。

示例

在下面的示例中,我们创建了两个按钮,“prev”和“next”,并为其添加了点击事件监听器;我们将执行相应的操作,并在用户点击任何按钮后根据 currentPosition 值的变化更新 UI。

<html>
<head>
   <title>Previous and Next Buttons: non-working on end positions</title>
</head>
<body>
   <div id = "content" ></div>
   <button id = "prev" > Previous </button>
   <button id = "next" > Next </button>
   <script>
      var currentPosition = 0;
      var maxPosition = 10;
      updateContent();
      document.getElementById("prev").addEventListener("click", function() {
         if (currentPosition > 0) {
            currentPosition--;
            updateContent() ;
         }
      });
      document.getElementById("next").addEventListener("click", function() {
         if (currentPosition < maxPosition) {
            currentPosition++;
            updateContent() ;
         }
      });
      function updateContent(){
         // update UI or make API call here
         var content = document.getElementById("content");
         content.innerHTML = "Current Position: " + currentPosition + "<br> <br>" ;
      }
   </script>
</body>
</html>

用户可以在我们的在线 JavaScript 编辑器上查看输出,以了解这些按钮是如何工作的。

使用 disabled 属性

我们可以使用“disabled”属性做同样的事情。它用于使按钮失效或不可点击。使用“disabled”属性,我们将在按钮处于结束位置时禁用它们。在这里,我们将更新按钮样式以表示结束位置的不可用状态。

语法

用户可以按照以下语法创建在结束位置不可用的前后按钮,并使用 disabled 属性。

// To disable the prev button
document.getElementById("prevBtn").disabled = true;

// To disable next button
document.getElementById("nextBtn").disabled = true;

将 disabled 属性设置为 true 会使按钮不可点击。我们将在结束位置为前后按钮设置 true 值,以使其不可点击。

示例

在下面的示例中,“disabled”用于“prevBtn”和“nextBtn”按钮,以防止用户在分别到达列表的开头或结尾时点击它们。当点击“prevBtn”并且当前位置位于列表的开头时,按钮上的 disabled 属性将设置为 true,使其不可点击。类似地,当点击“nextBtn”并且当前位置位于列表的结尾时,按钮上的 disabled 属性将设置为 true,使其不可点击。这是为了防止用户超出列表的第一个和最后一个元素。

<html>
<head>
   <title>Previous and Next Buttons: non-working on end positions</title>
</head>
<body>
   <div id = "content" > </div>
   <button id="prevBtn" disabled > Previous </button>
   <button id = "nextBtn" >Next </button>
   <script>
      let maxItem = 10;
      let currentItem = 0;
      prevBtn.style.backgroundColor = "red";
      updateContent();
      document.getElementById("prevBtn").addEventListener("click", function() {
         if(currentItem > 0) {
            currentItem--;
            document.getElementById("nextBtn").disabled = false;
            nextBtn.style.backgroundColor = "";
         }
         if(currentItem === 0) {
            this.disabled = true;
            prevBtn.style.backgroundColor = "red";
         }
         updateContent() ; 
      });
      document.getElementById("nextBtn").addEventListener("click", function() {
         if(currentItem < maxItem) {
            currentItem++;
            document.getElementById("prevBtn").disabled = false;
            prevBtn.style.backgroundColor = "";
         }
         if(currentItem === maxItem) {
            this.disabled = true;
            nextBtn.style.backgroundColor = "red";
         }
         updateContent() ;
      });
      function updateContent() {
         
         // update UI or make API call here
         var content = document.getElementById("content");
         content.innerHTML = "Current Item: " + currentItem + "<br><br>";
      }
   </script>
</body>
</html> 

用户可以在我们的在线 JavaScript 编辑器上查看输出,以了解这些按钮的颜色是如何根据其位置变化的。

我们学习了两种使用 JavaScript 创建前后按钮的不同方法。第一种方法涉及使用简单的 if 条件。相反,第二种方法利用“disabled”属性使按钮不可点击,并更新按钮样式以表示结束位置的不可用状态。

更新于: 2023年2月28日

6K+ 次查看

开启你的 职业生涯

通过完成课程获得认证

立即开始
广告

© . All rights reserved.