这是一个jquery错误吗?我有一个简单的点击事件。当我使用LET通过图像链接声明一些变量时,click事件停止在我的ipad(chrome)上工作。当我切换到LET时,一切正常。
PS:我有另一个使用相同代码的问题,但这完全不同。
// WHEN I USE "VAR" ".on( 'click' ,....)"
// works on mobile. With "LET" it does not.
let imageLink25 = "http://s020.radikal.ru/i709/1701/58/89fe5a582b92.png ";
let imageLink50 = "http: //i056.radikal.ru/1701/3e/0c7dcfd4956b.png";
let imageLink80 = "http://s011.radikal.ru/i318/1701/56/48fc3db701a0.png";
$('.size-list-item').on('click touchend', function(event) {
event.preventDefault();
$(".size-list-item").removeClass('active');
$(this).toggleClass('active');
});
.active {
font-size: 25px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="menu-list size-list-items">
<a class="size-list-item" data-type="25m2" href="#000" onclick="void(0)">25м2</a>
<a class="size-list-item active" data-type="50m2" href="#000" onclick="void(0)">50м2</a>
<a class="size-list-item" data-type="80m2" href="#000" onclick="void(0)">80м2</a>
</div>
答案 0 :(得分:1)
let变量仅在其块范围内可用。在您的情况下,如果它们位于jQuery块之外,则不能使用三个let变量。
这里有一个链接,可以很好地解释var,let和const之间的区别 https://www.sitepoint.com/preparing-ecmascript-6-let-const/
答案 1 :(得分:0)
我没有看到你甚至使用了定义的变量imageLink*
。
您的浏览器可能不支持let
语句。根据{{3}},Chrome 49及更高版本默认完全支持它。
如果不支持,则会导致语法错误,导致JavaScript无法继续执行。这意味着,您的click
事件永远不会被设置!
检查您在iPad上运行的Chrome版本。如果它低于49,那就是你的答案。
但是,如果版本介于41到48之间,则仍然可以使用let
,但您需要位于Can I Use?。简而言之,它要求您将'use strict';
放在JavaScript代码的开头。 ; - )