javascript - 如何在不重复的情况下对两个不同的 jQuery 事件使用相同的代码?

标签 javascript jquery

<分区>

我必须在两个不同的事件上调用相同的函数,如下面的示例所示:

 // calling a function on keyup
 $('#textarea').keyup(function() {
    var text_length = $('#textarea').val().length;
    var text_remaining = text_max - text_length;

    $('#textarea_feedback').html(text_remaining + ' characters remaining');
 });

 // calling same function on click
 $('#cancel').click(function() {
    var text_length = $('#textarea').val().length;
    var text_remaining = text_max - text_length;

    $('#textarea_feedback').html(text_remaining + ' characters remaining');
 });

请注意,上面的函数在两种情况下做同样的事情,我只需要在不同的条件下调用那个函数。

现在我的问题是,我可以在同一行中设置两个事件,这样我就可以避免设置函数两次吗?

最佳答案

只需单独声明函数,然后在两个事件中使用它。

var func_event = function() {
    var text_length = $('#textarea').val().length;
    var text_remaining = text_max - text_length;

    $('#textarea_feedback').html(text_remaining + ' characters remaining');
};

$('#textarea').keyup(func_event);
$('#cancel').click(func_event);

关于javascript - 如何在不重复的情况下对两个不同的 jQuery 事件使用相同的代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25556483/

相关文章:

javascript - 用点/逗号计算(相加)

javascript - jQuery 单击事件在页面加载时立即触发,仅在 IE8 中

javascript - 根据 id 对对象进行分组,并创建对象数组

javascript - '引用错误 : jest is not defined' when running unit test

javascript - 在Firefox中关闭/隐藏Android软键盘

javascript - 单击元素时不会调用单击事件监听器

jquery - SharePoint SOAP GetListItems VS jQuery - 如何使用 Ajax 循环自定义列表项以及 Ajax 刷新列表内容?

javascript - setInterval 上的 JQuery 切换类不起作用

javascript - 使用 jQuery 根据属性值将元素移动到正确的顺序

JavaScript 代码不工作