我的目标是从输入中删除javascript,所以我写了一些jquery
javascript:
<input type="text" id = "IDthisinput'" class="CLthisinput'" placeholder="First"
onChange = "dosomething();"
onKeyPress = "this.onchange();"
onpaste = "this.onchange();"
oninput = "this.onchange();"
/>
<span id="ReturnedMsg"></span>
<span id="IDActionVal"></span>
jquery:
$('.CLthisinput').on('keyup', function () {
$('#ReturnedMsg').html(dotuff('#'+this.id,$(this).val()));
$('#IDActionVal').html('#'+this.id + ' ' + 'keyup ' + $(this).val());
});
$('.CLthisinput').on('paste', function () {
$('#ReturnedMsg').html(dotuff('#'+this.id,$(this).val()));
$('#IDActionVal').html('#'+this.id + ' ' + 'keyup ' + $(this).val());
});
当谈到缩短上述内容时,我很难过,这很好,就像这样:
$('.CLthisinput').on('keyup', 'paste', function () {
var theaction = event
$('#ReturnedMsg').html(dotuff('#'+this.id,$(this).val()));
$('#IDActionVal').html('#'+this.id + ' ' + theaction + ' ' + $(this).val());
});
如何让活动一起工作?!
答案 0 :(得分:2)
另一种方法也是外包该功能,如下:
var helper = function() {
$('#ReturnedMsg').html(dotuff('#'+this.id,$(this).val()));
$('#IDActionVal').html('#'+this.id + ' ' + 'keyup ' + $(this).val());
}
$('.CLthisinput').on('keyup', helper);
$('.thisinput').on('paste', helper);
答案 1 :(得分:0)
枚举同一个字符串中的两个事件,用空格分隔:
$('.thisinput').on('keyup paste', function () {
var theaction = event
$('#ReturnedMsg').html(dotuff('#'+this.id,$(this).val()));
$('#IDActionVal').html('#'+this.id + ' ' + theaction + ' ' + $(this).val());
});
你不能将它们作为单独的参数传递,因为$('.thisinput').on('keyup', 'paste', ...)
做了完全不同的事情:当keyup
内的<paste>
标记内发生.thisinput
事件时,它会触发(和允许动态添加<paste>
标记。
您可以使用event.type
找出事件的类型:
$('.thisinput').on('keyup paste', function () {
var theaction = event
$('#ReturnedMsg').html(dotuff('#'+this.id,$(this).val()));
$('#IDActionVal').html('#'+this.id + ' ' + theaction.type + ' ' + $(this).val());
});
此外,请勿使用全局event
对象(也称为window.event
)。这是Microsoft引入的non-standard extension,它在Firefox中不起作用。相反,将事件作为参数传递给回调:
$('.thisinput').on('keyup paste', function (event) {
var theaction = event
$('#ReturnedMsg').html(dotuff('#'+this.id,$(this).val()));
$('#IDActionVal').html('#'+this.id + ' ' + theaction.type + ' ' + $(this).val());
});
此外,您实际上不需要theaction
和event
作为单独的变量:
$('.thisinput').on('keyup paste', function (theaction) {
$('#ReturnedMsg').html(dotuff('#'+this.id,$(this).val()));
$('#IDActionVal').html('#'+this.id + ' ' + theaction.type + ' ' + $(this).val());
});