jQuery:如何在两个输入框上操作插件

时间:2015-11-16 06:45:44

标签: javascript jquery jquery-plugins

我正在编写一个与自动完成或虚拟键盘相同的插件,其中包含选定的输入值以及排序和搜索功能。如果我在一个页面中使用它一次,这个插件工作正常,但是当我将这个应用于多个时,它会显示在最后写入的对象上应用的框和事件。示例代码和小提琴如下: http://jsfiddle.net/mantrig/ugmwa5b5/

我的插件代码插入:

$(document).ready(function(){
var testData = ["BSL","DSK","NPNR","SAV","ET","NDLS","JPR","MAS","BCT","NZM","BR","SUJH"];
$(".stations").myAutoSuggest({
    data:testData,
    dataref:"stationsList",
    title:"Station List",
    sort:"desc"
});
var trainData = ["12345","32151","64231","56421","78542","13452"];
$(".trains").myAutoSuggest({
    data:trainData,
    title:"Train List",
    dataref:"trainsList",
    sort:"desc"
  });
});

我非常擅长编写任何插件,因此代码可能非常脏。一点帮助将不胜感激!!

2 个答案:

答案 0 :(得分:1)

你错过了'。 将$(body).append(html);更改为$('body').append(html);

Jsfiddle

答案 1 :(得分:1)

问题是你的“selectedTextbox”变量会在这里解决你的问题

 $(".Help").bind("focus",function(e){
             selectedTextbox=this; 
             showVirtualHelp(selectedTextbox);
  });

以后在这里使用它,因为有多个文本框,所以你需要传递参考当前聚焦元素来显示帮助框

function showVirtualHelp(selectedTextbox) {
            $(".virtualHelp."+settings.dataref).css("top",($(selectedTextbox).offset().top+30)+"px");
            $(".virtualHelp."+settings.dataref).css("left",($(selectedTextbox).offset().left+30)+"px");
            $(".virtualHelp."+settings.dataref).show();
    }

Working Fiddle