Jquery Tag-it - 如何对焦点进行操作

时间:2016-12-12 13:45:36

标签: 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">
&#13;
&#13;
&#13;

它不起作用,任何想法?

提前谢谢

1 个答案:

答案 0 :(得分:1)

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

$('#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

&#13;
&#13;
$("#tags").tagit().next('ul').find('li input.ui-widget-content').focus(function(e) {
  if (!e.originalEvent) return;
  // code your logic here
  console.log('focus');
});
&#13;
<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">
&#13;
&#13;
&#13;