【问题标题】:Clicking A Link Two Times单击链接两次
【发布时间】:2011-01-21 20:49:28
【问题描述】:

我有一个这样的链接:

<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");

【问题讨论】:

    标签: javascript jquery coding-style


    【解决方案1】:

    尝试使用toggleClass()

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

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

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

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

    你能给我解释一下,为什么 jQuery 的 click() 函数 [is] 比内联 onclick 属性更好吗?

    我更喜欢使用非内联代码的原因是它降低了更改onClick 事件的复杂性;因为它们在 one 位置被更改,而不必更改每个 a(或其他)元素中的 onclick 属性。诚然,您可以通过简单地更改 renkDegistir() 函数来实现该好处,但最终会得到以后代命名的函数,而不是函数的固有性质。

    它还让其他人更容易接管和调整您的代码,并在出现错误时消除错误。

    【讨论】:

    【解决方案2】:

    toggleClass 正是这样做的。

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

    【讨论】:

      【解决方案3】:

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-06-14
        • 2012-05-24
        • 2014-11-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多