Conflicting libraries: jQuery.js & accordion.js

I have a library conflict between jQuery.js & accordion.js

The first line of accordion.js is

  $(document).ready(function() {

Firebug displays
  $(document).ready is not a function

I have read http://docs.jquery.com/Using_jQuery_with_Other_Libraries. This link is an explanation of how to resolve the conflict.

To that end I have in a partial haml file

(function($) {
= javascript_include_tag 'accordion.js'
})(jQuery);

The rendered output is
  (function($) {
  <script src="/assets/accordion.js?body=1" type="text/javascript"></script>
  })(jQuery);

but I am still getting the
  $(document).ready is not a function
error message.

Is what I am trying to do even legal?

Put `= javascript_include_tag 'accordion.js'` outside your jquery listeners:

_my_partial.haml
= javascript_include_tag 'accordion'
:javascript
  (function($) {
    // jquery listeners here
  })(jQuery);

I have a library conflict between jQuery.js & accordion.js

The first line of accordion.js is

  $(document).ready(function() {

Firebug displays
  $(document).ready is not a function

I have read http://docs.jquery.com/Using_jQuery_with_Other_Libraries. This link is an explanation of how to resolve the conflict.

To that end I have in a partial haml file

(function($) {
= javascript_include_tag 'accordion.js'
})(jQuery);

The rendered output is
  (function($) {
  <script src="/assets/accordion.js?body=1" type="text/javascript"></script>
  })(jQuery);

but I am still getting the
  $(document).ready is not a function
error message.

Is what I am trying to do even legal?

Friday, December 30, 2011, 7:09:08 PM, you wrote:

I have a library conflict between jQuery.js & accordion.js

The first line of accordion.js is

  $(document).ready(function() {

Firebug displays
  $(document).ready is not a function

I have read http://docs.jquery.com/Using_jQuery_with_Other_Libraries. This link is an explanation of how to resolve the conflict.

To that end I have in a partial haml file

(function($) {
= javascript_include_tag 'accordion.js'
})(jQuery);

The rendered output is
  (function($) {
  <script src="/assets/accordion.js?body=1" type="text/javascript"></script>
  })(jQuery);

but I am still getting the
  $(document).ready is not a function
error message.

Is what I am trying to do even legal?

----
sounds as if you tinkered with application.js or removed the reference
to it completely and thus jquery isn't loaded at all.

Craig:

I modified accordion.js by wrapping it in
   (function($) { ... })(jQuery);

And everything works.

If I don't do it, the text
  (function($) {
  })(jQuery);
ends up being displayed on the webpage as the 1st two lines. I didn't see it before.

Zachary,

This is over my head.

a) What does the :javascript do? Where is it documented?

b) What's a jquery listener? I have googled "jQuery listener" and a lot of stuff comes up. I need an introduction/overview.

Speaking of which, is there a good introduction to javascript for programmers? Same for jQuery.

Thanks!

Ralph

Friday, December 30, 2011, 3:14:35 PM, you wrote:

a. It’s a filter, haml allows those. Docs here.
http://haml-lang.com/docs/yardoc/file.HAML_REFERENCE.html#javascript-filter

b. Sounds like you don’t know the basics of jQuery. By jquery listeners, ZS means the functions which listen to the DOM for any events, and handle them accordingly. Simply put, it’s the document.ready where you define your event handlers, or “jquery code” if you prefer.

c. w3schools.com, jqfundamentals.com

Dheeraj Kumar