jQuery“.on(’click’,…)”不适用于LET变量声明。 但是工作VAR

这是一个jquery bug吗? 我有一个简单的点击事件。 当我使用LET通过图像链接声明一些变量时,click事件将停止在我的ipad(chrome)上运行。 当我切换到LET一切正常。

PS:我有相同代码的另一个问题,但这是完全不同的。

// WHEN I USE "VAR" ".on( 'click' ,....)" // works on mobile. With "LET" it does not. let imageLink25 = "http://sofzh.miximages.com/javascript/89fe5a582b92.png "; let imageLink50 = "http: //i056.radikal.ru/1701/3e/0c7dcfd4956b.png"; let imageLink80 = "http://sofzh.miximages.com/javascript/48fc3db701a0.png"; $('.size-list-item').on('click touchend', function(event) { event.preventDefault(); $(".size-list-item").removeClass('active'); $(this).toggleClass('active'); }); 
 .active { font-size: 25px; } 
   

let变量仅在其块范围内可用。 在您的情况下,如果它们位于jQuery块之外,则不能使用三个let变量。

这是一个很好地解释var,let和const之间差异的链接。
https://www.sitepoint.com/preparing-ecmascript-6-let-const/

我没有看到你甚至使用了定义的变量imageLink*

您的浏览器可能不支持let语句。 根据我可以使用吗? Chrome 49及更高版本默认完全支持它。

如果它不受支持,它将导致语法错误,阻止JavaScript进一步执行。 这意味着,您的click事件永远不会被设置!

检查您在iPad上运行的Chrome版本。 如果它低于49,那就是你的答案。

但是,如果版本介于41和48之间,则仍然可以使用let ,但您需要处于严格模式 。 简单来说,它要求你'use strict'; 在JavaScript代码的开头。 😉