【问题标题】:Success function after jquery plugin is applied (tag-it)应用 jquery 插件后的成功函数(tag-it)
【发布时间】:2012-12-05 14:23:50
【问题描述】:

我想知道在应用插件后有什么方法可以进行一些操作 例如,

$("#mytags").tagit({
    tagSource: function (request, response) {




    }
});

我想要这样的东西:

$("#mytags").tagit({
    tagSource: function (request, response) {




    }
}, function(){
        $(#test).remove();
});

【问题讨论】:

  • 你能提供更多你的tagSource函数吗?
  • tagSource函数根本无所谓 可以是任何函数,我不需要tagSource func的回调,我需要成功应用插件的回调
  • 为什么需要回调?为什么不能直接在下一行拨打$("#test").remove();
  • 如果您真的需要以一种链式方式使用它(即使在您的示例中它只选择一个元素),您可以使用$("#mytags").tagit({}).each(function () { // Refer to 'this' for each element });
  • 我需要一个回调,因为:tagIt 将我的 div 转换为带有输入的 tagIt 块,我需要在输入上放置一个占位符值,但只有在插件初始化成功后才能这样做

标签: javascript jquery jquery-plugins tag-it


【解决方案1】:

我仔细查看了插件的源代码,它没有提供这样的回调。我和你一样需要。就我而言,它没有导入所需的属性,因此所需的消息在页面上似乎完全丢失了。我做了一个猴子补丁。它并不完美,但解决了我的问题。我会尝试将此回调添加到 tag-it 并将其发送到 github。无论如何,这是我的肮脏修复:

       var temp = setInterval(function()
       {
            if( $('.ui-widget-content.ui-autocomplete-input').length > 0 )
            {
                clearInterval(temp);
                $('.ui-widget-content.ui-autocomplete-input').doSomething();
            }
       }, 500);


编辑: 更好的解决方案。正如我刚才所说。我对代码进行了更改,并将其发送到主分支,您可以在此处查看我的插件版本:https://github.com/kalkehcoisa/tag-it/blob/master/js/tag-it.js 它有一个回调“afterCreated”,当 tagit 完成应用时触发。如何使用它的一个例子:

            $('#singleFieldTags').tagit({
            availableTags: sampleTags,
            singleFieldNode: $('#mySingleField'),
    afterCreated: function(){ alert( 'test' ); },
        });


我希望这有帮助。 ;)

嘿! tag-it 首席开发人员回答了我 (https://github.com/aehlke/tag-it/pull/215#issuecomment-26191461) 关于我的拉取请求。事情远比我们想象的要简单:

你只需要 $('#myWidget').('create', function (event) { /* ... */ });在 jQuery UI 中是标准的。也许文档中的一个例子是 必须的……

发展和学习! ;P

【讨论】:

  • 嗨@Jayme。很好解释的答案。当我尝试 $('#myWidget').('create',function(){ alert("in"); }); 时出现错误给我一个错误“意外的令牌(”
  • 在小部件本身内添加了创建功能。按预期开始工作。谢谢你的回答。
【解决方案2】:

您需要为适当的事件发现插件 API。如果你使用this one,它有这样的事件:afterTagAdded (function, Callback)

阅读documentation了解如何使用。

【讨论】:

  • 谢谢,但这不是我需要的。我需要的正是: 1. 插件适用于 div,发送任何内容等 2. 完成后,我需要隐藏/删除/做其他任何事情。这可能吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-10-14
  • 1970-01-01
  • 2023-03-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多