【问题标题】:jquery IF not working as expected on iphonejquery IF 在 iphone 上无法按预期工作
【发布时间】:2018-09-05 12:53:17
【问题描述】:

我有同名的函数,每个函数都应该在不同的页面上触发。 它在安卓和电脑上都能正常工作,但在 iPhone 上却不行。

if($('main').is('.a')){
  function submit(){
    alert('a');
  }
}
if($('main').is('.b')){
  function submit(){
    alert('b');
  }
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<main class="a">
  <a href="#" onclick="submit()">anchor</a>
</main>

在 iphone 上它会提示“b”!!!

【问题讨论】:

  • 为什么你有两个同名的函数?你可以写 if 函数内的条件
  • 如果你想检查班级,你也可以在 if 中使用hasclass()
  • 在大多数情况下它将返回 b,因为元素的最后定义值(在这种情况下是函数)将始终是使用的值。尽管它取决于您的功能范围。更好的做法是为您的函数使用不同的名称,或者将它们全部放在一个函数中。
  • 您应该使用 ELSE。问题是事件的时间安排

标签: javascript jquery ios


【解决方案1】:

您应该编写单个函数并在其中写入if 条件。使用hasClass 来识别元素是否具有特定的类

function submit(){
  if($('main').hasClass('a')){
    alert('a');
  } else if($('main').hasClass('b')){
    alert('b');
  }
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<main class="a">
  <a href="#" onclick="submit()">anchor</a>
</main>

【讨论】:

    【解决方案2】:

    我认为您只需将所有代码包装在一个函数中即可。

    <main class="a">
      <a href="#" onclick="submit()">anchor</a>
    </main>
    <script>
    
    function submit(){
     var tag=$('main');
     if(tag.hasClass('a'))
      { 
        alert('a');
      }
      if(tag.hasClass('b'))
      { 
        alert('b');
      }
     }
    </script>
    

    【讨论】:

      猜你喜欢
      • 2013-12-08
      • 2013-12-16
      • 2021-12-19
      • 1970-01-01
      • 2013-11-25
      • 2023-04-03
      • 1970-01-01
      • 2015-04-10
      • 2012-05-19
      相关资源
      最近更新 更多