Matt Elhotiby
Matt Elhotiby

Reputation: 44066

Changing the onclick

Ok so I have this

<img width="38" height="39" onclick="jreviews.favorite.add(this,{listing_id:2655})" class="imgFavoriteAdd" alt="Add to favorites" id="jr_favoriteImg2655" src="http://kingdomshopper.com/templates/jreviews_overrides/views/themes/default/theme_images/fav_add.png">

and as you can see the onclick is

 jreviews.favorite.add(this,{listing_id:2655})

I need to change the onclick to

jreviews.favorite.remove(this,{listing_id:2655})

but when i do

 jQuery("#jr_favoriteImg2655").attr("onclick")
 onclick(event)

can i do

 jQuery("#jr_favoriteImg2655").attr("onclick", "jreviews.favorite.add(this,{listing_id:2655})")

or is there a better or another way

Upvotes: 3

Views: 423

Answers (3)

neeebzz
neeebzz

Reputation: 11538

You'll be lot better off if you remove the onclick attribute from your element and then do the following >

// Initializing >> 
var first = function () { jreviews.favorite.add(this,{listing_id:2655}) };
var second = function () { jreviews.favorite.remove(this,{listing_id:2655}) };

jQuery("#jr_favoriteImg2655").bind("click", first);

and then when you want to switch >

jQuery("#jr_favoriteImg2655").unbind("click", first);
jQuery("#jr_favoriteImg2655").bind("click", second);

Upvotes: 4

Mohsen
Mohsen

Reputation: 65785

Using inline JavaScript is not recommended, but anyway you can use a condition here to make sure you added this to favorite before or not. Something like this:

<img width="38" height="39" onclick="if(!jreview.favorite.exist(this)){jreviews.favorite.add(this,{listing_id:2655})}else{jreviews.favorite.remove(this,{listing_id:2655})}" class="imgFavoriteAdd" alt="Add to favorites" id="jr_favoriteImg2655" src="http://kingdomshopper.com/templates/jreviews_overrides/views/themes/default/theme_images/fav_add.png">

I'm not familiar with your API and exist is just an example

Upvotes: 2

Xion
Xion

Reputation: 22770

The usual way to do that (i.e. binding functions to events) is either bind or click:

jQuery("#jr_favoriteImg2655").click(function() {
    jreviews.favorite.remove(this,{listing_id:2655});
});

Upvotes: 2

Related Questions