单击A链接两次

时间:2011-01-21 20:49:28

标签: javascript jquery coding-style

我有这样的链接:

<a href="#" onclick="renkDegistir()" title="Yaz .......

和JS代码:

function renkDegistir()
    {  
        $("#cont #main article").addClass("siyah-stil");
    }

点击此链接时,siyah-stil类被添加到文章中。但我想这样做,如果链接点击第二次删除siyah-stil类。

总之,

on first click : addClass("siyah-stil");
on second click : removeClass("siyah-stil");

3 个答案:

答案 0 :(得分:7)

尝试使用toggleClass()

function renkDegistir()
{
    $("#cont #main article").toggleClass("siyah-stil");
}

但我建议删除内联onclick属性,并切换到jQuery的click()事件处理程序:

$('a').click(
    function(){
        $("#cont #main article").toggleClass("siyah-stil");
    });

已编辑以解决@ Eray的评论(下文):

  

你能解释一下,为什么jQuery的click()函数[比]优于内联onclick属性?

我更喜欢使用非内联代码的原因是它降低了更改onClick事件的复杂性;因为它们在一个位置被更改,而不是必须更改每个onclick(或其他)元素中的a属性。不可否认,只需更改renkDegistir()函数,就可以实现这一好处,但最终会得到为后代命名的函数,而不是函数的固有特性。

它还可以让其他人更容易接管,调整代码,并在出现错误时解决错误。

答案 1 :(得分:1)

toggleClass正是如此。

http://api.jquery.com/toggleClass/

答案 2 :(得分:1)

你走了:

JQuery - toggleClass