小编Joe*_*iak的帖子

FontAwesome 5点击活动?

我想做什么

我刚刚从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必须提供的一个想法,但我很好奇是否有更好的方法:

  1. 在添加监听器之前使用短暂的超时 - 但最好是hacky.
  2. 单击时使用包装元素,然后在每次单击时搜索SVG元素.
  3. 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,因为元素未被替换.

jquery svg font-awesome-5

7
推荐指数
1
解决办法
5085
查看次数

C++ getenv 不更新

我正在尝试编写一个 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++ 程序的状态。

编辑我应该注意,我也不想只是终止该进程,因为它必须在结束时关闭硬件。

c++ linux bash getenv

5
推荐指数
1
解决办法
1780
查看次数

Webpack 使用 perf_hooks 作为节点/浏览器模块

我正在制作一个模块,我希望它可以在浏览器和 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)

browser node.js webpack umd

5
推荐指数
1
解决办法
861
查看次数

SVN清理导致"错误处理命令'modify-wcprop'"

我正在尝试检查一个大型目录并且部分通过,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个小时,而且我今天已经重试了一次.有谁知道造成这种情况的原因是什么?

我应该注意在存储库浏览器中检查这些文件是否存在.

谢谢.

svn svn-checkout

3
推荐指数
1
解决办法
3262
查看次数

Django 用户帐户更新 - 忽略“具有此用户名的用户已存在”

我正在尝试为我的 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)

django account

2
推荐指数
1
解决办法
4442
查看次数

标签 统计

account ×1

bash ×1

browser ×1

c++ ×1

django ×1

font-awesome-5 ×1

getenv ×1

jquery ×1

linux ×1

node.js ×1

svg ×1

svn ×1

svn-checkout ×1

umd ×1

webpack ×1