Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何仅在jquery插件中的当前输入文本框上触发相同名称的类?_Javascript_Jquery_Html_Css - Fatal编程技术网

Javascript 如何仅在jquery插件中的当前输入文本框上触发相同名称的类?

Javascript 如何仅在jquery插件中的当前输入文本框上触发相同名称的类?,javascript,jquery,html,css,Javascript,Jquery,Html,Css,您好,我正在创建ajax搜索插件。我已经创建了一些动态div。假设我有两个输入框字段,并且动态生成的div具有相同的名称。所以我只想投影用户在文本框中输入值的div,而不是other,但无论我在第一个或第二个输入框中输入,它都会在两个div上获取结果。 HTML jquery插件文件 var timeOut = null; var $current; var $info; var input; var hint; var comment; (function( $ ) { $.fn.type

您好,我正在创建ajax搜索插件。我已经创建了一些动态div。假设我有两个输入框字段,并且动态生成的div具有相同的名称。所以我只想投影用户在文本框中输入值的div,而不是other,但无论我在第一个或第二个输入框中输入,它都会在两个div上获取结果。 HTML

jquery插件文件

var timeOut = null;
var $current;
var $info;
var input;
var hint;
var comment;

(function( $ ) {

$.fn.typefast = function(a){
  $(this).one('keydown',function(){
  input=$(this);
    $('body').bodyAppend($(this));
    $(this).css({
        'position': 'relative',
        'top': '-34px',
        'background': 'transparent',
        'padding-left': '11px',
        'font-size': '16px'
    })
    $('<div>').attr({
        name: 'comment',
        class: 'comment'
      }).insertAfter($(this));
      comment=$(this);

  })
$(this).on('keydown',function (e) {
    var _this = $(this);

    clearTimeout(timeOut);
      timeOut = setTimeout(function() {
        var m = _this.val();
        api.searchResult(m,e);
        // console.log(ui.input);
        console.log(m);
    },500);

  })
  $.fn.bodyAppend=function(m) {
    $(window).ready(function() {
      $('<input>').attr({
          type: 'text',
          name: 'input1',
          class: 'form-control',
          id:'result',
          placeholder: 'working'
        }).insertBefore(m);
        hint=$('#result')
        single=$('.single')

    })
  }
};

}( jQuery ));
var timeOut=null;
var$当前;
var$info;
var输入;
var提示;
var评价;
(函数($){
$.fn.typefast=函数(a){
$(this.one('keydown',function()){
输入=$(此项);
$('body').bodyAppend($(this));
$(this.css)({
'位置':'相对',
'顶部':'-34px',
'背景':'透明',
“左填充”:“11px”,
“字体大小”:“16px”
})
$('').attr({
名称:'注释',
课堂:“评论”
})。在($(本))之后插入;
评论=$(本);
})
$(此).on('keydown',函数(e){
var_this=$(this);
clearTimeout(超时);
timeOut=setTimeout(函数(){
var m=_this.val();
api.搜索结果(m,e);
//console.log(ui.input);
控制台日志(m);
},500);
})
$.fn.bodyAppend=函数(m){
$(窗口).ready(函数(){
$('').attr({
键入:“文本”,
名称:“input1”,
类:“窗体控件”,
id:“结果”,
占位符:“正在工作”
}).插入前(m);
提示=$(“#结果”)
单个=$('.single')
})
}
};
}(jQuery));
我的问题是,无论页面上输入文本字段的数量如何。我的评论应该只指向我正在使用的当前输入框。它不应更新其他注释字段 class single是显示ajax请求结果的字段。
最好的方法是什么???

在这种情况下,您可以将一个公共类设置为所有输入字段,并将焦点事件上的typefast函数应用于该类

比如说,, HTML代码

<div class="col-md-6">
                <input type="text" class="form-control searchtext" name="" value="" >
            </div>
<div class="col-md-6">
                <input type="text" class="form-control searchtext" name="" value="" >
            </div>
var timeOut = null;
var $current;
var $info;
var input;
var hint;
var comment;

(function( $ ) {

$.fn.typefast = function(a){
  $(this).one('keydown',function(){
  input=$(this);
    $('body').bodyAppend($(this));
    $(this).css({
        'position': 'relative',
        'top': '-34px',
        'background': 'transparent',
        'padding-left': '11px',
        'font-size': '16px'
    })
    $('<div>').attr({
        name: 'comment',
        class: 'comment'
      }).insertAfter($(this));
      comment=$(this);

  })
$(this).on('keydown',function (e) {
    var _this = $(this);

    clearTimeout(timeOut);
      timeOut = setTimeout(function() {
        var m = _this.val();
        api.searchResult(m,e);
        // console.log(ui.input);
        console.log(m);
    },500);

  })
  $.fn.bodyAppend=function(m) {
    $(window).ready(function() {
      $('<input>').attr({
          type: 'text',
          name: 'input1',
          class: 'form-control',
          id:'result',
          placeholder: 'working'
        }).insertBefore(m);
        hint=$('#result')
        single=$('.single')

    })
  }
};

}( jQuery ));
<div class="col-md-6">
                <input type="text" class="form-control searchtext" name="" value="" >
            </div>
<div class="col-md-6">
                <input type="text" class="form-control searchtext" name="" value="" >
            </div>
$(document).ready(function () {
                $(document).on("focus", ".searchtext", function () {
                    $($(this)).typefast({
                        hint: true,
                        autocomplete: true,
                    });
                });
            });