当试图从API加载数据时,我一直收到这个控制台错误。
Uncaught ReferenceError: $ is not defined
我尝试过在应用程序中放置一个JQuery脚本,但它不起作用。
我只想在加载页面时将数据附加到#Result容器中
app/views/locations/show.html.erb
<div id="resultContainer"></div>
app/assets/javascripts/application.js
var _PremiumApiBaseURL = 'http://api.worldweatheronline.com/premium/v1/';
var _PremiumApiKey = 'APIKEY';
//Get Marine Weather Data
function JSONP_MarineWeather(input) {
var url = _PremiumApiBaseURL + "marine.ashx?q=" + input.query +
"&format=" + input.format +
"&fx=" + input.fx +
"&key=" + _PremiumApiKey +
"&tide=yes&";
jsonP(url, input.callback);
}
// Helper
function jsonP(url, callback) {
$.ajax({
type: 'GET',
url: url,
async: false,
contentType: "application/json",
jsonpCallback: callback,
dataType: 'jsonp',
success: function (json) {
console.dir('success');
},
error: function (e) {
console.log(e.message);
}
});
}
var resultContainer = $('#resultContainer');
var output = '';
$(document).ready(function () {
GetMarineWeather();
});
function GetMarineWeather(e) {
var marineWeatherInput = {
query: '26.13,-80.10',
format: 'JSON',
fx: '',
callback: 'MarineWeatherCallback'
};
JSONP_MarineWeather(marineWeatherInput);
e.preventDefault();
}
function MarineWeatherCallback(marineWeather) {
var allDataToday = marineWeather.data.weather[0]
output = "<br/> Date: " + allDataToday.date;
output += "<br/> Min Temp (f): " + allDataToday.mintempF;
output += " - Max Temp (f): " + allDataToday.maxtempF;
output += "<br/>";
//6AM
output += "<br/> Time: 6AM";
output += " - Surf: " + allDataToday.hourly[2].swellHeight_ft + "ft";
output += " - Swell: " + allDataToday.hourly[2].swellDir16Point + " " + allDataToday.hourly[2].swellPeriod_secs + "sec";
resultContainer.empty();
resultContainer.html(output);
}
帮助
发布于 2016-05-18 18:36:40
在调用jQuery
函数之前,确保正确地包含了jQuery库,或者检查共享jQuery $
别名的任何冲突的JavaScript库。
<script src="http://code.jquery.com/jquery-latest.min.js" type="text/javascript"></script>
如果任何其他JavaScript库的$
变量与jQuery
有一些冲突,则可以使用jQuery.noConflict()方法来避免相同的冲突。
例如:
var jq = jQuery.noConflict();
jq( "div p" ).hide(); //Instead of $( "div p" ).hide();
发布于 2016-05-18 18:55:18
如果您可以通过键入jQuery来访问jQuery
,您可以自己用$ = jQuery;
将它化名为
https://stackoverflow.com/questions/37307549
复制相似问题