jquery IF 在 iphone 上无法按预期工作

Posted

技术标签:

【中文标题】jquery IF 在 iphone 上无法按预期工作【英文标题】:jquery IF not working as expected on 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。问题是事件的时间安排 【参考方案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>

【讨论】:

以上是关于jquery IF 在 iphone 上无法按预期工作的主要内容,如果未能解决你的问题,请参考以下文章

在移动设备上使用可排序的触摸事件 + jquery-ui 无法按预期工作

jquery 表单无法按预期工作。 ajaxForm 不是函数

使用 laravel 和 jquery 分页无法按预期工作

jQuery UI 的贪婪 droppable 无法按预期工作

具有可拖放可拖动和可调整大小的 Jquery 无法按预期工作

以编程方式输入文本时,TextInput 无法按预期工作