我想做什么
我刚刚从Font Awesome 4.7切换到Font Awesome 5,除了一件事之外,一切都很好:在我的网站的一部分,我使用字体真棒图标作为切换 - esk按钮.点击后,我想将"开放"的心脏改为"封闭的"心脏图标(fas fa-heart < - > far fa-heart).我可以通过在浏览器的检查器中更改SVG元素中的数据前缀来完成此操作.
问题
我的问题是绑定点击监听器,因为那里的元素被删除并替换为SVG.我动态地将元素添加到具有这些心形图标的页面上,并且在使用JS把手生成HTML之后,我使用jquerys .on("click")方法来获取单击按钮并切换类.当元素没有被替换时,这很好,但随着SVG的变化,新的做法是什么?
可能的解决方案
我阅读了Font Awesome的"如何"指南,但它们还没有涵盖这样的主题.这是人们想要做的常见事情,因此获得人们可以使用的解决方案列表会很不错.下面是我想到的两个想法,但是FontAwesome必须提供的一个想法,但我很好奇是否有更好的方法:
示例小提琴
这是一个简单的示例,其中一个按钮被动态地附加到文档(如果使用$(document).ready(),这可以正常工作,但我正在执行API请求,然后动态生成html).单击该按钮不会调用侦听器,因为元素尚未完成将元素替换为SVG.
https://jsfiddle.net/L748ownw/
<div id='container'></div>
$("#container").append("<i id='heart' class='far fa-heart'></i>");
$(".far").on("click", function() {
console.log("clicked");
});
Run Code Online (Sandbox Code Playgroud)
此示例适用于FontAwesome 4.7,因为元素未被替换.
我正在尝试编写一个 bash 脚本运行的程序。我希望 bash 脚本能够更改 C++ 程序的状态,而我唯一能找到的就是使用环境变量。问题是,似乎 getenv 仅在程序运行时获取值。
重击
export BLINK=1
./blink &
sleep 5s
unset BLINK
Run Code Online (Sandbox Code Playgroud)
C++
int main(int args, char **argv) {
char *blink = getenv("BLINK");
while(blink && blink[0] == '1')
{
std::cout << getenv("BLINK") << std::endl;
usleep(500000);
}
return 1;
}
Run Code Online (Sandbox Code Playgroud)
所以它的作用是运行眨眼程序,等待 5 秒钟,然后取消环境设置。然而,C++ 程序始终将环境值视为 1 并且永远不会停止。程序运行时如何获取更新的环境变量?或者有没有更好的方法让 bash 脚本控制 C++ 程序的状态。
编辑我应该注意,我也不想只是终止该进程,因为它必须在结束时关闭硬件。
我正在制作一个模块,我希望它可以在浏览器和 Node.js 中使用。它依赖于性能,这给我使用 Webpack 和 Node.js 中的 perf_hooks 模块带来了麻烦。无论我做什么,我只能在其中之一起作用的地方得到它,但不能同时得到两者。
以下是我尝试过的大部分内容。我的问题是,如何配置 Webpack 以在节点中需要 perf_hooks,但在浏览器中使用内置的性能全局?
这是我的基本 Webpack 配置:
const path = require('path');
module.exports = {
entry: './src/UpdateLoop.js',
mode: 'development',
output: {
library: 'UpdateLoop',
libraryTarget: 'umd',
path: path.resolve(__dirname, 'dist'),
filename: 'updateloop.js',
globalObject: 'this',
},
};
Run Code Online (Sandbox Code Playgroud)
给我带来麻烦的代码:
const { performance } = require('perf_hooks');
Run Code Online (Sandbox Code Playgroud)
webpack 中出现此错误:
Field 'browser' doesn't contain a valid alias configuration
resolve as module
C:\Users\joe.jankowiak\projects\update-loop\src\node_modules doesn't exist or is not a directory
Run Code Online (Sandbox Code Playgroud)
我已经看到“fs”执行以下操作的建议:
// configuration.node has an unknown property 'perf_hooks'
node: { …Run Code Online (Sandbox Code Playgroud) 我正在尝试检查一个大型目录并且部分通过,SVN服务器崩溃了.我试图执行清理,但每次错误说文件不受版本控制.
root@mitydsp-dev:~/nvsp2# svn cleanup
svn: In directory 'Platform/qt5/qtdeclarative'
svn: Error processing command 'modify-wcprop' in 'Platform/qt5/qtdeclarative'
svn: 'Platform/qt5/qtdeclarative/LICENSE.FDL' is not under version control
Run Code Online (Sandbox Code Playgroud)
如果我进入Platform/qt5/qtdeclarative,则没有LICENSE.FDL文件.我尝试删除了qtdeclarative文件夹,但是当我再次运行时,我只是在一个目录中得到相同的错误.
root@mitydsp-dev:~/nvsp2# svn cleanup
svn: In directory 'Platform/qt5'
svn: Error processing command 'modify-wcprop' in 'Platform/qt5'
svn: 'Platform/qt5/build.sh' is not under version control
Run Code Online (Sandbox Code Playgroud)
同样,没有build.sh文件.我现在已经完成了5次,我无法重新检查存储库,因为它需要5-6个小时,而且我今天已经重试了一次.有谁知道造成这种情况的原因是什么?
我应该注意在存储库浏览器中检查这些文件是否存在.
谢谢.
我正在尝试为我的 django 网站创建一个编辑帐户页面。我正在尝试使用稍作修改的注册表单,因为信息基本上都是相同的。我遇到的问题是,当用户单击更新时,django 甚至会检查唯一的用户名,如果用户名相同,则返回以下错误。如果他们不更改它,它应该检查字段值是否等于登录的用户名并跳过它。
“具有该用户名的用户已存在”
到目前为止,我已经重写了 clean 方法,通过 request.user 传递到表单,并检查登录的用户名是否与字段用户名相同。查看其他堆栈溢出问题,似乎人们只是 del self._errors['username'] 但我遇到了一个关键错误。self._errors 甚至没有实例化。我还尝试将“Unique”属性设置为 false,但它仍然给我错误。我迷路了所以任何帮助将不胜感激。
我的表格类:
class updateAccount(forms.ModelForm):
username = forms.CharField(required=True, widget=forms.TextInput(attrs={'placeholder': 'Username'}))
email = forms.EmailField(required=True, widget=forms.TextInput(attrs={'placeholder': 'Email Address'}))
first_name = forms.CharField(max_length=100, required=True, widget=forms.TextInput(attrs={'placeholder': 'First Name'}))
last_name = forms.CharField(max_length=100, required=True, widget=forms.TextInput(attrs={'placeholder': 'Last Name'}))
class Meta:
model = User
fields = ('username','email','first_name','last_name')
exclude = ('password',)
def __init__(self, *args, **kwargs):
self.request = kwargs.pop("request")
super(updateAccount, self).__init__(*args, **kwargs)
def clean(self):
if self.request.user.username == self.cleaned_data.get('username'):
self.fields['username'].required = False
super(updateAccount, self).clean()
return self.cleaned_data
def save(self, commit=True): …Run Code Online (Sandbox Code Playgroud)