hez*_*zha 2 javascript jquery ecmascript-6
我有一个函数,可以附加带有输入文本的新 div 和一个带有 add_key 类的 {button},添加它后我想更改当前按钮的类和文本,但 $(this) 不起作用,甚至我使用了this.element不起作用,这是我的点击事件函数
$(document).on('click','.add_key',() => {
$(this).prop('value', 'Delete');
$(this).toggleClass('add_key del_key');
$('#main_div').prepend(getUIComponentTemplate());
});
Run Code Online (Sandbox Code Playgroud)
箭头函数还有另一种行为this,请查看文档以获取更多信息。所以最后你有两个选择:
1)不要使用箭头函数,使用旧的ES5方式:
$(document).on('click', '.add_key', function() {
$(this).prop('value', 'Delete');
$(this).toggleClass('add_key del_key');
$('#main_div').prepend(getUIComponentTemplate());
});
Run Code Online (Sandbox Code Playgroud)
2)替换this为event.currentTarget:
$(document).on('click', '.add_key', event => {
$(event.currentTarget).prop('value', 'Delete');
$(event.currentTarget).toggleClass('add_key del_key');
$('#main_div').prepend(getUIComponentTemplate());
});
Run Code Online (Sandbox Code Playgroud)
这是一个小演示,它通过这两种方式记录元素:
$(document).on('click', '.add_key', function() {
$(this).prop('value', 'Delete');
$(this).toggleClass('add_key del_key');
$('#main_div').prepend(getUIComponentTemplate());
});
Run Code Online (Sandbox Code Playgroud)
$(document).on('click', '.add_key', event => {
$(event.currentTarget).prop('value', 'Delete');
$(event.currentTarget).toggleClass('add_key del_key');
$('#main_div').prepend(getUIComponentTemplate());
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2950 次 |
| 最近记录: |