首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >未定义的ReferenceError:$是未定义的- Rails

未定义的ReferenceError:$是未定义的- Rails
EN

Stack Overflow用户
提问于 2016-05-18 18:32:02
回答 2查看 3.1K关注 0票数 0

当试图从API加载数据时,我一直收到这个控制台错误。

代码语言:javascript
运行
复制
Uncaught ReferenceError: $ is not defined

我尝试过在应用程序中放置一个JQuery脚本,但它不起作用。

我只想在加载页面时将数据附加到#Result容器中

app/views/locations/show.html.erb

<div id="resultContainer"></div>

app/assets/javascripts/application.js

代码语言:javascript
运行
复制
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);
}

帮助

EN

回答 2

Stack Overflow用户

发布于 2016-05-18 18:36:40

在调用jQuery函数之前,确保正确地包含了jQuery库,或者检查共享jQuery $别名的任何冲突的JavaScript库。

代码语言:javascript
运行
复制
<script src="http://code.jquery.com/jquery-latest.min.js" type="text/javascript"></script>

如果任何其他JavaScript库的$变量与jQuery有一些冲突,则可以使用jQuery.noConflict()方法来避免相同的冲突。

例如:

代码语言:javascript
运行
复制
var jq = jQuery.noConflict();
jq( "div p" ).hide(); //Instead of $( "div p" ).hide();
票数 0
EN

Stack Overflow用户

发布于 2016-05-18 18:55:18

如果您可以通过键入jQuery来访问jQuery,您可以自己用$ = jQuery;将它化名为

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37307549

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档