2016-11-27 71 views
0

我想写一个jquery函数,否则我必须反复写一些代码。如何正确定义jQuery函数

这里是笏功能是第一:

$(".checkbox-car").click(function(){ 
      $(this).toggleClass('checked-car') 
     }); 

     $(".checkbox-bus").click(function(){ 
      $(this).toggleClass('checked-bus') 
     }); 

而这正是我试图用我自己的函数来做到:

$.fn.checkedFunction = function(Clicked, Checked){ 
     $(this).click(function(){ 
      console.log('check'); 
      $(Clicked).toggleClass(Checked); 
     }); 
    } 

    $('.checkbox-car').checkedFunction('.checkbox-car','.checked-car'); 

,但我得到了checkedFunction没有定义的错误。

我在做什么错在这里有人可以帮我吗?

+1

你的代码看起来几乎完全是多余的 - 你只是包装现有'.toggleClass()'方法并没有增加额外的功能。 –

+0

您应该看看如何[将函数绑定到jQuery.fn原型](https://api.jquery.com/jquery.fn.extend/)。 –

回答

1

你会得到一个错误,checkedFunction没有被定义,因为它没有。 checkedFunction是在$.fn对象中定义的属性。

要使用您创建的功能,您应该执行 $(".some-element").checkedFunction(...args)

更重要的是,您应该阅读jQuery文档。

+0

我编辑我的文章检查出来 – Sreinieren

+0

你应该删除Clicked参数。 “this”是选定的jQuery元素。 –

0

就不得不这样做:

$.fn.checkedFunction = function(Clicked, Checked){ 
     $(this).click(function(){ 
      $(Clicked).toggleClass(Checked); 
     }); 
    } 

    $('.checkbox-car').checkedFunction('.checkbox-car','checked-car'); 
    $('.checkbox-bus').checkedFunction('.checkbox-bus','checked-bus'); 

第二checked-类之前删除的点