Observe field with jquery in Rails 3.1

I tries to observe a change in a field with jquery in Rails 3.1 in
order to be able to implement two cascading select boxes.
A a first step I just try to observe a click in a div using jquery
I have the following function in a .js file that is loadedin the head
section (fieldset is the id of a div) and is displaying a view with
the div fieldset

$(document).ready(function() {
$(’#fieldset’).bind({
click: function() {
alert(‘Change’);
// do something on click
},
mouseenter: function() {
// do something on mouseenter
};
});
});
But nothing happens when I click in the field
I suspect that I am using jquery in the wrong way
I would appriciate any advice !
Hans

Hi Hans,

On Wed, Jan 11, 2012 at 10:35 AM, Hans [email protected]
wrote:

alert(‘Change’);
// do something on click
},
mouseenter: function() {
// do something on mouseenter
};
});
});
But nothing happens when I click in the field
I suspect that I am using jquery in the wrong way

Try giving it an id of a different name. My guess is that jquery is
‘confused’ by your use of ‘fieldset’ as an id because it is also a tag
name.

HTH,
Bill

Hans M. wrote in post #1040373:

$(document).ready(function() {
$(’#fieldset’).bind({
click: function() {
alert(‘Change’);
// do something on click
},
mouseenter: function() {
// do something on mouseenter
};
});
});
But nothing happens when I click in the field
I suspect that I am using jquery in the wrong way
I would appriciate any advice !
Hans

I’d first try a simpler case just to make sure everything is “wired up”
correctly:

$(function() {
$(’#fieldset’).click(function() { alert(“Clicked”); });
});

If this works then you know you’re finding the right HTML element and
correctly binding a “click.” Once you’ve confirmed this then try the
more complex bind syntax.

P.S. I used the shorthand for waiting for the DOM ready event for
simplification & demonstration.

Thanks for your advices

Your advices convinced me that the error was some minor typo or some
other detail
That was also true
The problem is
{ alert(“Clicked”); })
when I changed that to
alert(“Clicked”);
and put everything with a ready function it worked
I am now trying more complex change functions that also seems to work

I have tried on and off and might use them

Robert W. wrote in post #1040404:

$(function() {
$(’#fieldset’).click(function() { alert(“Clicked”); });
});

If this works then you know you’re finding the right HTML element and
correctly binding a “click.” Once you’ve confirmed this then try the
more complex bind syntax.

If you’re using jQuery 1.7+ you might also want to consider using the
new .on()/.off() methods for binding events.

http://api.jquery.com/on/