【发布时间】:2023-04-08 07:50:01
【问题描述】:
我已经为 js.erb 文件中的部分编写了一些 jQuery。这个 jQuery 变成了通用函数,我决定将其放入资产管道,即 assets/javascripts/myfile.js,现在 JavaScript 不再工作。我可以从源代码中看到 JavaScript 正在加载到浏览器中,但它什么也没做,但它之前作为 js.erb 文件工作。
可能是什么问题?
在 application.js 我有
//= require jquery
//= require_tree .
这是我的 js:
$(document).ready(function() {
$("#close").click(function(){
$(this).parent().parent().slideUp("slow");
});
$(function() {
$( "#datepicker" ).datepicker({
dateFormat : "yy-mm-dd"
});
});
var player_count = $("#player option").length;
$('#btn-add').click(function(){
$('#users option:selected').each( function() {
if(player_count >= 8){
$('#select-reserve').append("<option value='"+$(this).val()+"'>"+$(this).text()+" </option>");
$(this).remove();
}else{
$('#player').append("<option value='"+$(this).val()+"'>"+$(this).text()+"</option>");
$(this).remove();
player_count++;
}
});
});
$('#btn-remove').click(function(){
$('#player option:selected').each( function() {
$('#users').append("<option value='"+$(this).val()+"'>"+$(this).text()+"</option>");
$(this).remove();
player_count--;
});
});
$('#btn-remove-reserve').click(function(){
$('#select-reserve option:selected').each( function() {
$('#users').append("<option value='"+$(this).val()+"'>"+$(this).text()+"</option>");
$(this).remove();
});
});
$("#submit").click(function(){
$("select option").prop("selected", "selected");
});
});
我注意到一个新的发展,js 在点击重新加载后可以工作。但无论何时第一次进入页面(直接来自链接)它都不起作用。
【问题讨论】:
-
“不工作”是什么意思? js文件需要erb解析吗?
-
不知道js文件是否需要erb解析。我所知道的是这些函数什么也没做。
-
首先检查你是否在控制器中包含了js检查这个主题stackoverflow.com/questions/5017114/…
-
@Navi 我尝试过在控制器中使用和不使用格式 js。没有区别。
标签: javascript ruby-on-rails asset-pipeline