首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >变量不能全局使用jQuery,需要在函数内部定义,为什么?

变量不能全局使用jQuery,需要在函数内部定义,为什么?
EN

Stack Overflow用户
提问于 2018-01-25 21:45:01
回答 3查看 59关注 0票数 0

我有一个片段

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
  let bgColor;
  let toolColor;

  let brushTool = $('.fa-paint-brush');

  // Build the Grid
  CREATE_CANVAS_FORM.submit(function(event) {
    event.preventDefault();

    // Show good popups
    CREATE_GRID_POPUP.addClass('hidden');
    CANVAS_TABLE.removeClass('hidden');

    // Build the grid
    makeGrid();

    // Setup the grid
    bgColor = BG_COLOR_GRID.val();
    toolColor = TOOL_COLOR_GRID.val();

    CANVAS_TABLE.css('background-color', bgColor);
    BACK_COLOR.val(bgColor);
    TOOL_COLOR.val(toolColor);

    // Select the brush tool
    brushTool.addClass('selected-tool');
  });

变量bgColor和toolColor运行良好,但brushTool变量运行不正常。我需要在另一个函数中使用这个变量,所以我不能在这个函数中定义它。

这是唯一一个不起作用的变量,我需要在函数中放入let brushTool = $('.fa-paint-brush');行才能使其起作用。

有人能帮我找出原因吗?也许可以给我一个提示,让我全局定义变量?

这是完整的代码:https://codepen.io/maevanapcontact/pen/Gybaqv函数从第275行开始,相应的HTML元素是字体画笔,当添加类时,它应该会变成橙色。

要运行该函数:单击绿色加号圆圈>单击按钮"create canvas“

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2018-01-25 22:29:33

您的JQuery选择器工作正常。您面临的问题是,用<svg>元素替换<i>元素的字体太棒了,所以您的brushTool变量现在引用了DOM中不存在的元素。

有关参考,请参阅https://fontawesome.com/how-to-use/svg-with-js

您可以编写一个按需返回元素的函数,并在需要时使用它。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
function getBrushTool() {
    return $(".fa-paint-brush");
}

或者,您可以将<i class="fa-paint-brush">包装在另一个元素中,并为外部元素提供一个id,您可以在js中访问和修改该id。

编辑:您也可以将此代码添加到脚本的顶部,以指示font awesome嵌套元素而不是替换它。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
FontAwesomeConfig = { autoReplaceSvg: 'nest' }

最后,更新您的css以针对svg。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
.selected-tool svg {
    color: #e9722a;
}
票数 0
EN

Stack Overflow用户

发布于 2018-01-25 21:50:30

您可以使用window声明变量,并使它们在所有作用域中都可用。然后,该变量将在所有函数中始终可用。varlet的作用域是有限的。即

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
window.brushTool = $('.fa-paint-brush');

此时,您可以在任何地方使用变量brushTool

票数 0
EN

Stack Overflow用户

发布于 2018-01-25 22:08:19

尝试使用LocalStorage

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
  localStorage.setItem('brushTool', '$(".fa-paint-brush")');

并通过以下方式获得值:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
var brushTool = localStorage.getItem('brushTool');
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48452398

复制
相关文章
iOS-将项目上传到 GitHub 上
创建项目 进入GitHub主页,创建新代码仓库,注册相关事宜不再赘述(见下图): 二、给你的新代码仓库起名称(可以是项目的名称或者 Demo 的文件名称)--->给你仓库添加描述(方便别人理解用途)--->点击“创建”(见下图): 步骤二.png 三、点击“创建”后会生成相应的 github 网址,这个网址就是以后上传项目的地址(见下图): 步骤三.png 四、接着用 Xcode 创建工程,记得勾选创建 Git 代码仓库(见下图): 步骤四.png 五、在导航栏找到“配置工程”选项(见下
用户1890628
2018/05/10
2.6K0
iOS上架及ipa包上传到AppStore
由于苹果的机制,在非越狱机器上安装应用必须通过官方的Appstore,开发者开发好应用后上传Appstore,也需要通过审核等环节。AppCan作为一个跨主流平台的一个开发平台,也对ipa包上传Appstore作了支持。本文从三个流程来介绍如何实现AppCan在线编译出ipa包,以及上传到苹果Appstore。
iOS Magician
2023/03/21
9860
iOS上架及ipa包上传到AppStore
IOS 上传到后台json数据
今天后台让我传一个类似下图 后台要求的数据格式 我以前还没有这样传过数据。不知道该怎么传,在网上搜了一下,很感谢www.cnblogs.com/yang-guang-girl/p/5642333.ht
honey缘木鱼
2018/06/13
8280
iOS UIProgressView控件用法
- (instancetype)initWithProgressViewStyle:(UIProgressViewStyle)style;
珲少
2018/08/15
5560
iOS UICollectionView的用法
UICollectionViewDataSource,UICollectionViewDelegateFlowLayout
码客说
2019/10/22
1.3K0
【iOS】将代码上传到pod创库
可以看到我们指定source_files指定在PPKit/Classes文件夹下的所有文件,所以我们的源码都放在这里就可以了
MapleYe
2020/03/30
8150
【iOS】将代码上传到pod创库
iOS-将项目上传到 Git.OSChina 上,创建自己的私有项目
为什么要将项目上传到 Git.OSChina 上 GitHub上创建私有项目是收费的 git.oschina上可以创建1000个免费的项目 服务器在国内,速度比GitHub快 ---- 登录 git.oschina.net ---- 配置 SSHKey 为什么要配置SSHKey 客户端与服务器进行通信的时候要保证安全,就需要在客户端配置私钥,在服务端配置公钥 SSHKey就是来配置公钥和私钥 客户端负责生成私钥和公钥 将公钥传递给服务器 工作原理 客户端发起一个请求到服务端 服务端接到请
用户1890628
2018/05/10
1.5K0
如何将IDEA上的项目上传到GitHub上?
最近,找到了一个去年用Springboot完成的一个web类博客项目,于是想到了上传到GitHub上开源分享。相信还有一部分刚入"IT"圈的编程小白(请忽略我也是一个菜鸟…),于是正好利用这个机会做一期记录。
大数据梦想家
2021/01/27
6.8K0
如何将IDEA上的项目上传到GitHub上?
UIProgressView 当前进度显示圆角
也就是把 UIProgressView的trackTintColor设置为透明。假如进度条没有填满是效果是这样的
赵哥窟
2018/09/13
2.8K0
UIProgressView 当前进度显示圆角
flutter中多flavors方案以及添加firebase​
有想做海外市场的同学们,可能需要用到firebase。今天我们讲讲怎么使用「FlutterFire CLI」添加 firebase以及如何设置「flavors」
用户1974410
2022/09/20
9.9K0
flutter中多flavors方案以及添加firebase​
ios打包ipa文件并上传到托管平台
当我们开发完app后,需要将ipa/apk提交给测试人员测试,然后才能上线。下面就来看一下如何打包ipa文件,并上传托管平台。 做过ios开发的童鞋都知道,ios为开发者提供了描述文件有2类,有说是3种(说的是iOS App):在Development类下就一种,用于真机调试Debug模式的描述文件;然而在Distribution类下,有2种描述文件。正常情况下,我们会使用App Store——Create a distribution provisioning profile to submit your
xiangzhihong
2018/01/26
2.3K0
ios打包ipa文件并上传到托管平台
当我们开发完app后,需要将ipa/apk提交给测试人员测试,然后才能上线。下面就来看一下如何打包ipa文件,并上传托管平台。 做过ios开发的童鞋都知道,ios为开发者提供了描述文件有2类,有说是3种(说的是iOS App):在Development类下就一种,用于真机调试Debug模式的描述文件;然而在Distribution类下,有2种描述文件。正常情况下,我们会使用App Store——Create a distribution provisioning profile to submit your
xiangzhihong
2018/02/06
2.4K0
ios打包ipa文件并上传到托管平台
git把本地文件上传到github上的步骤
1.清除clean 2.返回上一级cd .. 3.克隆仓库地址git clone+地址 4.添加忽悠文件vim .gitignore 5查看cat .gitignore 6.进入到test,并且添加所有的文件:cd test    git add. 7.查看状态,绿色git status 8.提交git commit  -am "wangtingwx" 9.查看状态 10.放到github:   ----------git  push origin master Administrator@PC-20160
王小婷
2018/05/31
5.3K0
iOS APP打包上传到APPstore的最新步骤
一、前言: 作为一名iOS开发者,把辛辛苦苦开发出来的App上传到App Store是件必要的事。但是很多人还是不知道该怎么上传到App Store上 下面就来详细讲解一下具体流程步骤。 二、准备: 一个已付费的开发者账号(可分为): 账号类型分为个人(Individual) 公司(Company) 企业(Enterprise) 高校(University)四种类型 每年资费分别为99、99、
iOS Magician
2023/03/22
9910
iOS APP打包上传到APPstore的最新步骤
打包上传到服务器图片不显示
assetsPublicPath:'/' 改为:assetsPublicPath:'./' (加一个点变为相对路径)
〆 千寻、
2020/03/10
2K0
iOS流布局UICollectionView系列二——UICollectionView的代理方法
        在上一篇博客中,介绍了最基本的UICollectionView的使用和其中我们常用的属性和方法,也介绍了瀑布流布局的过程与思路,这篇博客是上一篇的补充,来讨论关于UICollectionView的代理方法的使用。博客地址:
珲少
2018/08/16
2.1K0
iOS流布局UICollectionView系列二——UICollectionView的代理方法
iOS - Swift UICollectionView横向分页的问题UICollectionView横向分页的问题
UICollectionView横向分页的问题 情况 直接看图 滚前 滚后 已经设置collectionView的isPagingEnabled为true了,可是出现了这种情况,原因就是collect
LinXunFeng
2018/06/29
1.3K0
iOS14开发-UIView
在 iOS 13 中引入了新的 API — Diffable Data Source,它不仅能够驱动 UITableView 和 UICollectionView,而且可以更简单高效的实现数据的刷新。
YungFan
2021/01/21
11.9K0
Git在Idea中的配置(本地项目上传到码云或者Github)
安装结束后,查看Git是否正确的安装: cmd下输入git --version,若成功弹出,则显示安装成功。
VIBE
2022/12/02
1.1K0
微信小程序云存储(文件上传到云端)
  我们直到,云开发控制台更多的是对项目中的初始文件的操作管理,例如项目的Logo图片可以通过云开发控制台提起上传到云端。项目在执行的过程中也会涉及文件的操作,例如用户上传图片的操作,这时就需要用到云开发存储API。
别团等shy哥发育
2023/02/25
6.6K0
微信小程序云存储(文件上传到云端)

相似问题

以百分比显示iOS中的UIProgressView

30

无法将视频上传到iOS 13上的Firebase存储

12

是否将文件上传到服务器以在iPhone中显示UIProgressView?

31

上传到Firebase存储失败

28

在Objective中如何在UIProgressView的didSelectItemAtIndexPath委托上显示UICollectionView?

21
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文