【问题标题】:How to write a reusable jquery click function?如何编写一个可重用的 jquery 点击函数?
【发布时间】:2014-05-12 01:57:30
【问题描述】:

我有这个手风琴功能:

 $('.accordion a').click(function () {

        if($(this).is('.accordionClose')) {
            $('.accordionOpen').toggleClass('accordionOpen').toggleClass('accordionClose').next().slideToggle().toggleClass('openContent');
            $(this).toggleClass('accordionOpen').toggleClass('accordionClose');
            $(this).next().slideToggle().toggleClass('openContent');
        }

        else {
            $(this).toggleClass('accordionOpen').toggleClass('accordionClose');
            $(this).next().slideToggle().toggleClass('openContent');
        }
    });

我有这个 sn-p 来制作手风琴效果。问题是我不知道如何使它成为一个通用函数并在需要时调用它。我需要以插件格式制作它吗? 或者其他任何可能的方式?

我知道使用逗号分隔的多个选择器。我不是那个意思。

【问题讨论】:

  • 你到底想要什么?

标签: jquery html jquery-ui-accordion reusability


【解决方案1】:

这样写:

function func_name(){
//do stuff here
}

//call this later like this:

$('.accordion a').click(func_name);

//Or call like this:
$('.accordion a').click(function(){
  func_name(); //parenthesis required here
});

另外,您可以查看another post 以了解更多信息。

【讨论】:

  • $('.accordion a').on('click', func_name); 不是更好吗?
  • @Steve 是的!这更好,但我使用 click 就好像 OP 使用了它一样,这不是问题。
【解决方案2】:

如果您想在其他点击上执行完全相同的操作,那么您也可以通过触发器触发相同的点击事件,例如:

$(".xyz_class").click(function(){
   $(".accordion a").trigger("click");
});

文档是here。希望对您有所帮助。

【讨论】:

  • 我的意思是我希望该函数可重用。不在所有地方使用整个 sn-p。希望你现在就得到我的问题。
  • 使用函数的重点是重用代码。能否请您详细说明您的声明“函数可重用”。我们知道所有函数都是可重用的,您可以多次调用它们并重用代码。如果你能解释你的目标是什么?。我们可以更好地理解你的问题,并会尽力提供帮助。
猜你喜欢
  • 1970-01-01
  • 2011-10-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-10-04
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多