如何为jQuery实现标记插件

时间:2010-05-30 21:11:17

标签: jquery ruby-on-rails jquery-plugins tagging

目标:为我的rails应用程序实现一个jQuery插件(或者在必要时自己编写一个),在键入分隔符后在文本周围创建一个“框”。

示例:在SO上进行标记后,用户开始键入标记,然后从提供的下拉列表中选择一个标记。输入字段识别已选择标记,放置空格,然后为下一个标记做好准备。同样,我尝试使用this plugin在先前输入的标记周围放置一个框,然后再转到接受下一个标记/输入。

README.txt中的说明似乎很简单,但我收到了

  

$(“。tagbox”)。tagbox不是函数

使用firebug调试我的应用程序时出现

错误。

以下是我在application.js中的内容:

$(document).ready( function(){

    $('.tagbox').tagbox({
        separator: /\[,]/  // specifying comma separation for <code>tags</code>
    });

});

这是我的_form.html.erb:

<% form_for @tag do |f| %>
  <%= f.error_messages %>
  <p>
    <%= f.label :name %><br />
    <%= text_field :tag, :name, { :method => :get, :class => "tagbox" } %>
  </p>

  <p><%= f.submit "Submit" %></p>
<% end %>

为了便于阅读,我省略了_form.html.erb和application.js中存在的其他一些代码(即自动完成插件的实现)。包含或排除此省略的代码不会影响此插件的性能。

我在application.html.erb文件的javascript_include_tag中包含了tagbox插件的所有必要文件(以及所有其他包含的JS文件之后的application.js)。

当jquery.tagbox.js清楚地定义函数并且包含在我的html页面的头部时,我很困惑为什么我会得到这个“非函数”错误。我一直在努力使用这个插件超过我想承认的时间,所以任何帮助都会非常感激。当然,我对你可能想到的任何其他插件或从头开始的建议持开放态度。

此标记框插件似乎没有大量文档或任何当前可用的示例。

另外要注意,我正试图避免使用jrails。

感谢您的时间

2 个答案:

答案 0 :(得分:3)

这是另一个我写的带有一些附加功能的tagBox插件:

http://www.geektantra.com/2011/05/jquery-tagbox-plugin/

看看它是否有帮助。

答案 1 :(得分:2)

确保以正确的顺序加载插件和Jquery。在Jquery之前加载插件会导致此类错误。此外,请确保插件与您使用的JQuery版本兼容。如果所有这些都是正确的,我会做一个基本的JQuery函数,以确保您的路径是正确的。否则,使用firebug并尝试追踪负载失败的位置。