2014-09-10 22 views
0

有几个类似于SO的帖子,但我还没有找到一个答案正确的答案。我试图按照GitHub page上的说明在我的Rails 3.2应用程序中实现select2-rails gem。我捆绑了宝石,并包括JavaScript和CSS文件。然后我添加了一个像sample code那样的js函数调用。然而,我的选择栏并没有改变。select2-rails gem:已安装的资产和被调用的函数,但下拉不变(TypeError:undefined不是函数)

的Javascript包括:

# application.js 
//= require jquery 
//= require jquery_ujs 
//= require select2 
//= require jquery-1.11.0.min.js 
//= require lightbox.min.js 
//= require parsley 
//= require ./jquery.datetimepicker.js 
//= require Stripe/jquery.payment.js 
//= require_tree . 

CSS包括:

# application.css.less 
/* 
*= require_tree . 
*= require select2 
*= require select2-bootstrap 
*= stub active_admin 
*/ 

我与表单页面,只是想复制的例子:

# new.html.haml 

=content_for :title, 'Post a job' 
= javascript_include_tag "https://js.balancedpayments.com/1.1/balanced.js" 
:javascript 
    var _balanced_marketplace = "#{@balanced_marketplace}"; 
    var _categories = #{raw(@categories.to_json)}; 
    $(document).ready(function() { $("#e1").select2(); }); 
... 
... 
%select{id: "e1"} 
    %option{value: "AL"} Alabama 
    %option{value: "WY"} Wyoming 

我的剧本的结束和由HAML生成的HTML:

$(document).ready(function() { $("#e1").select2(); }); 
</script> 
     <select id='e1'> 
     <option value='AL'>Alabama</option> 
     <option value='WY'>Wyoming</option> 
     </select> 

所有这些只会导致正常的选择下拉菜单,而不会产生select2样式/功能。

在JavaScript控制台中我看到下面的错误我的函数调用:

Uncaught TypeError: undefined is not a function 

我不是非常熟悉JavaScript,但我猜这意味着与功能`选择2个问题()”。但是,我不确定如何开始调试,因为我一直遵循gem安装说明。当我查看网页源我看到正在加载的选择2 JS库如下:

<script src="/assets/select2.js?body=1" type="text/javascript"></script> 

回答

1

该错误可能有事情做与您加载的jQuery两次:

//= require jquery 
//= require jquery_ujs 
//= require select2 
//= require jquery-1.11.0.min.js 

你在做什么加载jquery,然后加载select2。然后你加载第二个jQuery,它删除了第一个jQuery(它与select2关联)。所以当你打电话时:

$("#e1").select2(); 

select2不再存在于第二个jQuery上。

我无法想象你真的需要两个jQueries加载,所以摆脱一个。

相关问题