javascript - Jquery Tag-it - 如何在焦点上做一个 Action

标签 javascript jquery tag-it

我使用的是 Jquery 插件 Tag-it,我想在输入聚焦时执行一个操作。

我试过:

$('#tags').tagit().focus(function() {
  // do something...
});

$('#tags').focus(function() {
  // do something...
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.2.4/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/tag-it/2.0/js/tag-it.min.js"></script>

<link href="https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.css" rel="stylesheet"/>
<link href="https://cdnjs.cloudflare.com/ajax/libs/tag-it/2.0/css/jquery.tagit.min.css" rel="stylesheet"/>
<link href="https://cdnjs.cloudflare.com/ajax/libs/tag-it/2.0/css/tagit.ui-zendesk.min.css" rel="stylesheet"/>

<input id="tags" name="tags" type="text" class="form-control" autocomplete="off">

它不起作用,有什么想法吗?

提前谢谢你

最佳答案

如果您检查呈现的 HTML,您会发现焦点不是原始输入。现在您可以将事件绑定(bind)到相关元素:

$('#tags').tagit().next('ul').find('li input.ui-widget-content').focus(function(e) {
  if (!e.originalEvent) return;
  // code your logic here
  console.log('focus');
});

请注意,此插件触发器专注于自定义插件元素,因此您必须对其进行过滤以避免双重处理程序调用。作为旁注,您可以使用 e.isTrigger 作为检查,但它是 not recommanded .

$("#tags").tagit().next('ul').find('li input.ui-widget-content').focus(function(e) {
  if (!e.originalEvent) return;
  // code your logic here
  console.log('focus');
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.2.4/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/tag-it/2.0/js/tag-it.min.js"></script>

<link href="https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.css" rel="stylesheet" />
<link href="https://cdnjs.cloudflare.com/ajax/libs/tag-it/2.0/css/jquery.tagit.min.css" rel="stylesheet" />
<link href="https://cdnjs.cloudflare.com/ajax/libs/tag-it/2.0/css/tagit.ui-zendesk.min.css" rel="stylesheet" />

<input id="tags" name="tags" type="text" class="form-control" autocomplete="off">

关于javascript - Jquery Tag-it - 如何在焦点上做一个 Action ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41102311/

相关文章:

javascript - 如何同时检查多个条件

javascript - 缩短纯 div 文本

javascript - 如何从 Javascript 同步运行 Ajax 函数?

javascript - 我们如何为 3 个函数重用 jQuery ajax 方法?

javascript - jQuery:在调用 ajax 的函数内返回 false

javascript - 我的 Bootstrap Modal ANCHOR 在菜单(导航栏)的行元素中不起作用

JavaScript - 输入分钟 :seconds and sum totals

javascript - 如何通过单击按钮显示隐藏的 div 部分

javascript - 我应该如何初始化这个变量以便与 jQuery 一起使用?

jquery - 如何改进 jQuery "Tag-It"自动完成功能?