Javascript 如何仅在jquery插件中的当前输入文本框上触发相同名称的类?
您好,我正在创建ajax搜索插件。我已经创建了一些动态div。假设我有两个输入框字段,并且动态生成的div具有相同的名称。所以我只想投影用户在文本框中输入值的div,而不是other,但无论我在第一个或第二个输入框中输入,它都会在两个div上获取结果。 HTML 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
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,
});
});
});