factoringcompare
factoringcompare

Reputation: 19

jQuery toggle();

I am loading data dynamically by AJAX into a cluetip (http://plugins.learningjquery.com/cluetip/#).

I want to toggle the results from a link like so:

$(document).ready(function() {
    $("#calendarLink").live("click",( function() {
        $("#result").toggle();
    }));
});

For some reason the above will not work. Can you suggest an alternative?

Upvotes: 1

Views: 332

Answers (4)

Istiaque Ahmed
Istiaque Ahmed

Reputation: 6498

Two elements in the same page can't have the same id.

u used

$("#result").toggle();

'I want to toggle the results from a link ...'

So the result elements should have the same class , not id.

The code should be :

$(".result").toggle();

'#' changed into '.'

Upvotes: 0

Sampson
Sampson

Reputation: 268444

The following code is correct (demo online - http://jsbin.com/ehate/edit):

$("#calendarLink").live("click", function(e){
  $("#result").toggle();
});

You use $.live() only if #calendarLink will be added dynamically later. If it isn't, use a regular click:

$("#calendarLink").click(function(e){
  $("#result").toggle();
});

If this is not working for you, be sure to check your #calendarLink and #result elements in your HTML. Make sure the ID values are correct. Mainly, be sure your casing is correct.

Upvotes: 0

Ryan
Ryan

Reputation: 6866

Perhaps the toggle() function isn't be used properly?

See here http://api.jquery.com/toggle/

I'm not sure if this is new functionality only for jQuery 1.4 but it appears the toggle function requires parameters.

Upvotes: 0

Mutation Person
Mutation Person

Reputation: 30520

Couple of questions/points

Do you really need to use .live() You're using an ID selector, so there should only ever be one of these.

Also, you have an extra set of brakets. Probably not a problem, but you could remove them:

$(document).ready(function() {
    $("#calendarLink").click( function() {
        $("#result").toggle();
    });
});

Upvotes: 1

Related Questions