I'm trying to incorporate a slider (http://simeydotme.github.io/jQuery-ui-Slider-Pips/#installation) into my view, which is supposedly part of jquery-ui. I have these in my Gemfile
gem 'jquery-rails' gem 'jquery-ui-rails' And when i open Gemfile.lock I see
jquery-rails (4.3.1)   rails-dom-testing (>= 1, < 3)   railties (>= 4.2.0)   thor (>= 0.14, < 2.0) jquery-ui-rails (6.0.1)   railties (>= 3.2.16) But although I have this HTML on my page
<div class="slider"></div> and I include this Javascript
$('.slider').slider().slider('pips'); I get the JS console error
Uncaught TypeError: $(...).slider is not a function when my page loads. The documentation says I have to include jQuery 2.1.1 and Jquery UI 2.1.1. I can't tell if I'm doing that properly or not.
Edit: Including content of app/assets/application.js in response to answer given ...
//= require jquery //= require jquery_ujs //= require turbolinks //= require_tree . 2 Answers
Answers 1
Seems everything is ok, you need some customization like on the assets/application.js top of the file add sorting like
//= require jquery //= require jquery_ujs Make sure jquery not rendering twice and your slider library include properly then edit your slider JS like below
(function($){     "use strict";     $(document).on('ready', function(){         $('.slider').slider().slider('pips');     }); }); Or like below
$(document).on('turbolinks:load', function(){     $('.slider').slider().slider('pips'); }); For refactoring you can use this js on the same page underneath where your slider using <script type="text/javascript"> .... </script> tag
Restart the server after implementing this
Hope it helps
Answers 2
Try this instead: Include the js from within the html
<script src="//code.jquery.com/jquery-3.3.1.min.js"></script> <script src="//code.jquery.com/ui/1.12.1/jquery-ui.min.js"></script> See if it works after that.
 
0 comments:
Post a Comment