首页 > 解决方案 > 如何访问选择器的对象而不是事件选择器,

问题描述

我正在使用 jquery 创建自定义插件组件,我有一个名为 inputPinGroup 的插件,我可以使用选项启动它,并使用名称调用方法,

我创建了自定义事件“maxedinput”,它将在输入达到最大字符限制时触发(PIN 最大为 6)。然后在插件中,您可以调用诸如“禁用”和“加载”之类的方法(我将跳过其余的 pf 插件详细信息,因为与问题无关)

问题是,我想使用某种“THIS”来调用该选定 jquery 对象的 .inputPinGroup 中的方法,以便它更具可读性,

因为它在 .on() 里面,当我试图调用 $(this).inputPinGroup('disable'); 该方法不起作用,我尝试了 this.inputPinGroup('disable'); 也不会工作

我如何使用某种“this”机制访问 $("#testing-pin-input-group2") ?

    $("#testing-pin-input-group2").on("maxedinput", (function (event, pinValue, param2) {
      
      setTimeout(function(){
     
        $("#testing-pin-input-group2").inputPinGroup('disable');// work

        $("#testing-pin-input-group2").inputPinGroup('loading');// work

        $(this).inputPinGroup('disable'); // doesnt work, i want to acces the $('#testing-pin-input-group2') so that code is more readable

      },1000);
      })
    );

标签: javascriptjquery

解决方案


经过一个小时的搜索,我似乎无法找到直接访问“this”的方法,我发现了一种我所期望的解决方法:

  $("#testing-pin-input-group2").on("maxedinput", (function (event, pinValue, param2) {
      var inputGroup = this;

      setTimeout(function(){    
        $(inputGroup).inputPinGroup('disable');
      },2000);
      })
    );

推荐阅读