2012-07-11 50 views
0

关于此问题有很多主题,我尝试了解决方案,但没有任何工作。我不是一个JavaScript开发人员,所以可能无法弄清楚。更改jquery中onclick的值

我有一个的onclick功能在我的HTML(PHP模板文件)

<a href="javascript:;" onclick="AddFav({$id});" title="Add to Favs">Fav</a> 

点击后,jQuery的AJAX功能被调用和成功,我想的的onclick值更改为RemoveFav({$ ID}。我changine标题与.attr值。

$('div#fav-'+ id +' a').unbind('click').removeAttr('onclick').click(RemoveFav(id);); 

请你帮助我一样。

+1

为什么不能对onClick事件一个功能,而是一个全局变量(0或1),当它是0 - 添加到收藏,当它是1从收藏中删除? 我想说这是一个不错的解决方案,因为如果他们再次访问该网站,但已经很受欢迎,他们也希望看到'删除fav',因此您可以根据数据库中的值设置全局变量。 – PoeHaH 2012-07-11 06:57:31

+0

嗨@PoeHaH,即使我想到了这个解决方案。当页面被加载时,它检查每个项目是否存在或不存在。因此,onclick函数更改为AddFav或RemoveFav。我们可以使用相同的函数,但是如何在每次点击时将0的值更改为1,反之亦然。 – 2012-07-11 07:16:41

+0

我会在一个答案中发布它,因为代码看起来更好:) – PoeHaH 2012-07-11 07:22:44

回答

0

.click需要一个回调函数。

$('div#fav-'+ id +' a').unbind('click').removeAttr('onclick').click(function(e) { 
    e.preventDefault(); 
    RemoveFav(id); 
}); 
+0

Hi @xdazz,感谢您的快速回复。我试过你的解决方案。但是现在点击功能已停止工作。 :( – 2012-07-11 07:18:05

+0

@VineshkumarKunhiraman尝试设置'href =“#”'并使用我编辑的代码。 – xdazz 2012-07-11 07:22:36

+0

Hi @xdazz,它工作。从我的结尾有一个错误,我没有正确关闭括号{}。 – 2012-07-11 07:41:42

0

如果你做我的建议在评论你的代码应该是这个样子:

var removeFav = 0; // this should be set according to database query, to check if it's favved 

function toggleFav() 
{ 
    if(removeFav == 0) 
    { 
    //code to add fav 
    removefav = 1; 
    } 
    else 
    { 
     //code to remove fav 
    removefav = 0; 
    } 

}