Jquery在两个函数之间循环

时间:2017-12-26 15:56:18

标签: jquery triggers cycle

您好我正在制作一个必须在两个功能之间循环的切换器,只是学会了如何使用一个独特的触发器来实现:

jQuery.fn.clicktoggle = function(a, b) {
  return this.each(function() {
    var clicked = false;
    jQuery(this).bind("click", function() {
        if (clicked) {
            clicked = false;
            console.log(clicked);
            return b.apply(this, arguments);
        }
        clicked = true;
        console.log(clicked);
        return a.apply(this, arguments);
    });
  });
}
jQuery("myTrigger1").clicktoggle(myOpen, myClose);

当我有一个独特的触发器,即“myTrigger1”时,这可以正常工作......但是如何才能在两个触发器中做到这一点?

jQuery(".myTrigger1, .myTrigger2").clicktoggle(myOpen, myClose);    

循环不正常...当我单击其中一个触发器时,它会在两个函数之间切换打开和关闭,但如果在操作为“myOpen”时单击另一个触发器,则必须单击两次。 ..

如果我有3个触发器做同样的事情怎么办?

函数“myOpen”和“myClose”不是jQuery.toggle函数,它们里面有一些代码。

请帮忙!

1 个答案:

答案 0 :(得分:0)

我通过将一个类附加到可以从函数内部检查的元素找到了解决方案:

jQuery('.myTrigger1, .myTrigger2').on('click', function (event) {
    jQuery('.myDiv').toggleClass('toggled');
        if (jQuery('.myDiv').hasClass('toggled')) {
            myOpen();
        } else{
            myClose();
        }
})