开发者社区 问答 正文

更改按钮文本和功能onClick在iPad / iPhone上不起作用

我有一个按钮。

当您打开页面时,它会显示“ 比较”,并在单击时会并排比较两个产品。 单击比较后,该按钮将更改为“上一步”,然后单击该按钮刷新页面。 问题在于这仅适用于台式机。当我通过chrome devtools将其更改为iPhone或iPad时,即使单击它,它也保持比较,并且没有变化。

  <button type="button" class='btn goCompare' id="goCompare" data-show="compareBack" style="width: 100%;">Compare</button>
</div> 

可能的解决方案:

  <div>
      <button id="compare">Compare</button>
      <button id="back" style="display: none;">Back</button>
  </div>
  <script type="text/javascript">
    document.getElementById('compare').onclick=function(){
      document.getElementById('compare').style.display = "none";
      document.getElementById('back').style.display = "block";
    }
    document.getElementById('back').onclick=function(){
      document.getElementById('compare').style.display = "none";
      refreshPage();
    }
    function refreshPage() {
      window.location.reload(true);
    }
  </script>
</body>

展开
收起
社区秘书 2019-12-10 11:40:41 619 分享
分享
版权
举报
阿里云 AI 助理回答

看起来你正在尝试解决一个与网页响应式设计相关的问题,即在不同设备上按钮的功能状态不一致。这可能是由于CSS媒体查询或者JavaScript事件处理逻辑没有正确地针对移动设备进行适配。以下是一些建议来帮助你解决这个问题:

1. 检查CSS媒体查询

确保你的CSS样式中使用了适当的媒体查询来针对不同屏幕尺寸调整布局和显示。例如,如果你希望在移动设备上改变按钮的行为或外观,可以添加如下代码段:

@media (max-width: 768px) {
  /* 在这里添加针对移动设备的样式 */
  .compare-button {
    /* 修改为适合移动设备的样式 */
  }
}

2. 调整JavaScript逻辑

确保你的JavaScript代码能够识别用户的设备类型,并据此调整按钮的功能。你可以通过检查window.innerWidth来判断当前视口宽度,从而决定是否应用特定的逻辑。

示例代码调整

假设你的按钮有一个初始类.compare,点击后会切换到.back,并且有相应的功能绑定。你需要确保在触屏设备上点击事件也能正常工作。

<button id="comparisonButton" class="compare">Compare</button>
document.getElementById('comparisonButton').addEventListener('click', function() {
  this.classList.toggle('compare');
  this.classList.toggle('back');
  
  // 根据类名执行相应操作
  if (this.classList.contains('compare')) {
    // 比较逻辑
  } else {
    // 返回或刷新页面逻辑
    location.reload();
  }
});

// 可选:如果需要更精细的设备检测,可以使用类似下面的方式来判断是移动设备还是桌面设备
function isMobileDevice() {
  return (typeof window.orientation !== "undefined") || (navigator.userAgent.indexOf('IEMobile') !== -1);
}

// 然后根据isMobileDevice的结果适当调整比较和返回逻辑

3. 测试

使用Chrome DevTools中的设备模拟器彻底测试修改后的代码,确保在各种设备和屏幕尺寸下都能正常工作。

4. 兼容性考虑

考虑到不同的浏览器和设备可能对JavaScript和CSS的支持程度不同,确保你的实现兼容主流浏览器,特别是对于触摸事件的支持,可能需要额外注意。

通过上述步骤,你应该能解决按钮在移动设备上行为不一致的问题。如果问题依旧,请进一步检查是否有其他脚本或样式冲突,或者具体错误信息来定位问题所在。

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答