使用rails 4和jQuery,但我似乎与两个函数有轻微的冲突。
第一个功能是滚动到顶部功能。
$(window).scroll(function(){
if ($(this).offset().top > 600) {
$('.scrollToTop').fadeIn(500);
} else {
$('.scrollToTop').fadeOut(500);
}
});
//Click event to scroll to top
$('.scrollToTop').click(function(){
$('html, body').animate({scrollTop : 0},800);
return false;
});
另一个是嵌套属性(RailsCast Tutorial)函数。
$(function() {
$("form").on("click", ".remove_fields", function(event) {
$(this).prev("input[type=hidden]").val("1");
$(this).closest("fieldset").hide();
return event.preventDefault();
});
return $("form").on("click", ".add_fields", function(event) {
var regexp, time;
regexp = void 0;
time = void 0;
time = new Date().getTime();
regexp = new RegExp($(this).data("id"), "g");
$(this).before($(this).data("fields").replace(regexp, time));
return event.preventDefault();
});
});
现在一个有效,而另一个无效,我不确定问题是什么。如果我剪切并重新粘贴嵌套属性jQuery它可以工作,但如果我单击滚动它不起作用。
我是jQuery的新手,所以我不确定是否会有各种冲突。
的application.js
//= require jquery
//= require jquery_ujs
//= require turbolinks
//= require_tree .
答案 0 :(得分:2)
按照此宝石https://github.com/kossnocorp/jquery.turbolinks的步骤操作,但不要向下移动// =需要turbolinks,只需将其完全删除。
答案 1 :(得分:0)
您应该使用jquery-turbolinks gem。
将gem 'jquery-turbolinks'
添加到您的Gemfile,然后运行bundle install
。
然后修改您的application.js
文件
//= require jquery
//= require jquery.turbolinks
//= require jquery_ujs
//
// ... your other scripts here ...
//
//= require turbolinks
答案 2 :(得分:0)
首先,安装jquery-turbolinks
gem。然后,不要忘记将已包含的Javascript文件从application.html.erb
的正文移动到其<head>
。
如果您已将应用程序javascript链接放在页脚中以实现速度优化,则需要将其移动到标记中,以便在标记中的内容之前加载。这个解决方案对我有用。