繁体   English   中英

jQuery“ .on('click',...)”不适用于LET变量声明。 但是可以使用VAR

[英]jQuery “.on( 'click' ,…)” does not work with LET variable declaration. But works VAR

这是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> 

let变量仅在其块范围内可用。 就您而言,如果三个let变量不在jQuery块中,则不能使用它们。

这里的链接很好地解释了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代码的开头。 ;-)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM