2011-08-20 100 views
0

我试图在单击时有一个按钮更改图像,然后再次单击时再次更改。我看到的例子在绑定和解除绑定计算器(here),但我搞乱与周围的功能,它好像我不能做用户定义的函数解除绑定和绑定帮助

$('a#fav').bind('click','addFav'); 

中的代码片段将不会在点击运行事件,但如果我做这样的事情

$('a#fav').bind('click',function(){ 
    alert('test'); 
}); 

它会工作。有人可以帮助我获得一个用户定义的函数来处理.bind和.unbind,就像它在示例中的样子一样吗?

谢谢

回答

0

不要使用字符串函数引用,它会工作:

function addFav(e) { 
    e.preventDefault(); 
    alert('called'); 
    return false; 
} 
$(document).ready(function() { 
    $('a#fav').bind('click', addFav); 
}) 

下面是一个例子:http://jsfiddle.net/BpGXD/

下面是与解除绑定一个例子:http://jsfiddle.net/BpGXD/2/

+0

我得到了我的绑定工作的地方会发生变化,但它赢得了当我再次点击它时不会改变。也许它必须对此做些什么?我可以解除绑定并像这样绑定它吗?谢谢! ('click',removeFav)'$('a#favorites')。removeClass('active')。text('title','Remove favorites')。unbind('click')。 – hellomello

0

bind将函数引用作为第二个参数。你在例子中传递的是一个字符串,所以它不起作用。您可以定义函数,然后你只需要把这个函数名,或者您也可以直接通过匿名函数作为第二个参数将被执行,当事件触发

function addFav(){ 
    alert("click fired"); 
} 

$('a#fav').bind('click', addFav); 

//Or 

$('a#fav').bind('click', function(){ 
    alert("click fired"); 
});