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 不是函数
jQuery UI 的贪婪 droppable 无法按预期工作