尝试实现D Wilhem's Leaflet Slider,Rails中JQuery UI slider的前端。我得到错误ReferenceError: Can't find variable: L
。我看了很多讨论,想象我混淆了语法。页面加载,1)我的数据显示,2)滑块控件显示,但滑块不起作用,然后我得到上述错误。
function makeMap() {
L.mapbox.accessToken = $('body').data("mapboxToken");
var map = L.mapbox.map('map', 'mtnbiker.d7jfhf8u') // Was: mapbox.streets
.setView([34.040951, -118.258579], 13);
L.control.fullscreen().addTo(map);
var featureLayer = L.mapbox.featureLayer()
.loadURL('map/point_data.geojson')
.addTo(map);
var featureLayer = L.mapbox.featureLayer()
.loadURL('map/line_data.geojson')
.addTo(map);
var sliderControl = L.control.sliderControl({range: true, alwaysShowDate: true, timeStrLength: 10, layer: featureLayer});
map.addControl(sliderControl);
sliderControl.startSlider();
$('#slider-timestamp').html(options.markers[ui.value].feature.properties.time.substr(0, 10));
featureLayer.on('ready', function(e) {
map.fitBounds(featureLayer.getBounds());
});
}
application.js
:
//= require jquery
//= require jquery_ujs
//= require bootstrap
//= require turbolinks
//= require 'leaflet.js'
//= require leaflet
//= require_tree .
Map加载数据(点和线)和本地主机上不起作用的滑块。点正在Heroku加载,但线和滑块均未加载。https://secure-shore-68966.herokuapp.com/map。
答:经过几周的尝试,MaptimeLA的一个朋友终于在一次会议上找到了一种类型,她非常熟悉Rails和调试。application.js是:
// require jquery.ui
// require jquery.ui.widget
固定
//= require jquery-ui
//= require jquery.ui.widget
感谢所有参与进来的人。
所有代码都在https://bitbucket.org/MtnBiker/crores5/。
附言。我看不到复选框说我想回答我自己的问题。
2条答案
按热度按时间but5z9lq1#
查看链接中的代码,按以下顺序加载以下脚本:
我怀疑有些东西加载的顺序不对,或者
L
被放在了某个地方,而且我也看不出核心jQuery被加载的位置。看看Demo,他们加载了以下内容:
所以我认为你所缺少的是核心的jQuery和LeafletJS。下面是一个基于他们提供的示例的工作JSFiddle。
https://jsfiddle.net/Twisty/sr0sjzk2/
olhwl3o22#
这并不是一个完整的答案。但是通过在Rails中的资产管道工作并进行修改,我已经消除了这个错误。问题可能是在使用各种教程时,我会在Ruby on Rails应用程序的不同位置放置不同版本的Leaflet或jQuery。
但是页面仍然不能正常工作。我在localhost上得到
TypeError: $("#leaflet-slider").slider is not a function. (In '$("#leaflet-slider").slider', '$("#leaflet-slider").slider' is undefined)
错误。错误在D Wilhelm的SliderControl.js中。在Heroku上,没有错误但没有滑块。我将发布一个新问题。https://secure-shore-68966.herokuapp.com/map。谢谢Twisty的帮助。