Rails jquery.tagsinput.js 在 link 之后未执行
Rails jquery.tagsinput.js not executing after link
问题
我有来自文件 jquery.tagsinput 的自定义效果,单击 link 后它不起作用,而如果我 刷新页面。
经过测试的解决方案
我尝试了以下方法:
- 禁用 turbolinks
- 正在为 ready 或 onload js 函数搜索文件 - none 存在
描述
文件jquery.tagsinput
具有以下结构
(function($) {
// Different functions and javascript staff
})(jQuery);
该函数包括我需要执行的不同 javascript 函数,如果我刷新浏览器,它们就会起作用。例如。
$.fn.tagsInput = function(options) {
// Some code
},options);
如果我刷新浏览器,我可以看到相关的 html 输入字段有两个事件处理程序:
在jquery.tagsinput
$(data.holder).bind('click',data,function(event) {
$(event.data.fake_input).focus();
});
在jquery.js
if ( !( eventHandle = elemData.handle ) ) {
// Some Code
};
我的edit.html.erb
查看
<%= f.text_field :skill_list, :class => "tagsinput form-control", :id => "tagsinput", value: f.object.skill_list.map { |t| t}.join(', ') %>
生成以下 html 代码:
非常感谢
法布里齐奥·贝尔托利奥
这是我的 application.js
,它包括以下文件:
//= require jquery.tagsinput
//= require form-component
//= require scripts
Jquery.tagsinput 没有就绪函数,但是 script.js 函数有,当我编辑 script.js 就绪函数时问题就开始了。
script.js
具有以下代码:
function initializeJS() {
// Some js code
}
jQuery(document).ready(function(){
initializeJS();
});
问题可能是由于我对 script.js
就绪函数进行了编辑以与 turbolinks
gem 兼容(而不是使用 .save
我会用 .on('turbolinks:load'..
)
jQuery(document).on('turbolinks:load', function(){
initializeJS();
});
一旦我更正了那行,问题就解决了,但我不明白它被解决的真正原因。我没有禁用 turbolinks。以后我会尝试了解真正的原因,并post做出解释。
问题
我有来自文件 jquery.tagsinput 的自定义效果,单击 link 后它不起作用,而如果我 刷新页面。
经过测试的解决方案
我尝试了以下方法:
- 禁用 turbolinks
- 正在为 ready 或 onload js 函数搜索文件 - none 存在
描述
文件jquery.tagsinput
具有以下结构
(function($) {
// Different functions and javascript staff
})(jQuery);
该函数包括我需要执行的不同 javascript 函数,如果我刷新浏览器,它们就会起作用。例如。
$.fn.tagsInput = function(options) {
// Some code
},options);
如果我刷新浏览器,我可以看到相关的 html 输入字段有两个事件处理程序:
在
jquery.tagsinput
$(data.holder).bind('click',data,function(event) { $(event.data.fake_input).focus(); });
在
jquery.js
if ( !( eventHandle = elemData.handle ) ) { // Some Code };
我的
edit.html.erb
查看<%= f.text_field :skill_list, :class => "tagsinput form-control", :id => "tagsinput", value: f.object.skill_list.map { |t| t}.join(', ') %>
生成以下 html 代码:
非常感谢
法布里齐奥·贝尔托利奥
这是我的 application.js
,它包括以下文件:
//= require jquery.tagsinput
//= require form-component
//= require scripts
Jquery.tagsinput 没有就绪函数,但是 script.js 函数有,当我编辑 script.js 就绪函数时问题就开始了。
script.js
具有以下代码:
function initializeJS() {
// Some js code
}
jQuery(document).ready(function(){
initializeJS();
});
问题可能是由于我对 script.js
就绪函数进行了编辑以与 turbolinks
gem 兼容(而不是使用 .save
我会用 .on('turbolinks:load'..
)
jQuery(document).on('turbolinks:load', function(){
initializeJS();
});
一旦我更正了那行,问题就解决了,但我不明白它被解决的真正原因。我没有禁用 turbolinks。以后我会尝试了解真正的原因,并post做出解释。