首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Jquery中多次调用函数以添加事件侦听器而不只是侦听最后一个?

如何在Jquery中多次调用函数以添加事件侦听器而不只是侦听最后一个?
EN

Stack Overflow用户
提问于 2019-12-12 18:06:34
回答 1查看 30关注 0票数 0

因此,我想要创建一个函数来计算文本框中的字符并打印它下面的数字。问题是,由于我有两个文本框,所以我希望能够重用该函数两次。

代码语言:javascript
复制
  <textarea id="custom_message" placeholder="sumthin sumthin" maxlength="240"></textarea>
  <div id="charsleft1" class="span-8" style="float:right; text-align:right"></div>

  <textarea id="restriction_message" placeholder="other sumthing" maxlength="240"></textarea>
  <div id="charsleft2" class="span-8" style="float:right; text-align:right"></div>

我想调用这个函数两次,但对函数的最后一次调用是有效的,这是我的函数。

代码语言:javascript
复制
function char_counter_limit(selector, content){
    text_box = "#"+selector.split("#")[1]
    counter = "#"+selector.split("#")[2]
    var maxlength = $(text_box).attr("maxlength");
    $(counter).text(0+" / "+maxlength);
    $(text_box).on("input", function(){
        var maxlength = $(this).attr("maxlength");
        var currentLength = $(this).val().length;
        if(currentLength <= maxlength){
            $(counter).text(currentLength+" / "+maxlength);
        }
    })
}

选择器是文本框的id和字符串ej中的div:"#custom_message#charsleft1“

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-12-12 18:10:19

假设您要传递不同的选择器,问题是您的代码正成为我所称的的牺牲品:您需要声明text_boxcounter,以便它们是char_counter_limit函数的本地函数,而不是全局函数。当它们是全局时,第二个调用将覆盖第一个调用。

var放在前面:

代码语言:javascript
复制
function char_counter_limit(selector, content){
    var text_box = "#"+selector.split("#")[1]
    var counter = "#"+selector.split("#")[2]
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59310449

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档