定义和调用自定义javascript函数的语法

时间:2014-05-30 04:49:02

标签: javascript jquery

如何在jQuery点击事件中调用自定义函数?

我定义了一个执行某些操作的clearOrder函数。 然后,当我点击DOM元素时,我想调用该函数,然后再做一些操作。

这些操作只是应用和删除类。如您所见,我想在将特定类添加到DOM元素之前,将元素中指定的现有类清除为一种重置。

HTML

<div id="neti" class="tile"> contents </div>
<div id="sife" class="tile"> contents </div>

的javascript

(function() {
  clearOrder(function() {
    return $('.tile').removeClass("order-1 order-2 order-3 order-4 order-5 order-6 order-7 order-8 order-9 order-10 order-11 order-12 order-13 order-14 order-15 order-16");
  });

  jQuery(function() {
    $('#neti').click(function() {
      clearOrder.call;
      $('this').addClass("active");
      $('#neti').addClass("order-1");
      $('#sife').addClass("order-2");

    });
  });

}).call(this);

脚本行为应该是当我点击一个元素时,它应该删除所有指定的类,然后应用某些类。


编辑:更改为以下内容,但仍无法正常运行。

(function() {
  clearOrder(function() {
    return $('.tile').removeClass("order-1 order-2 order-3 order-4 order-5 order-6 order-7 order-8 order-9 order-10 order-11 order-12 order-13 order-14 order-15 order-16");
  });

  jQuery(function() {
    $('#neti').click(function() {
      clearOrder();
      $('this').addClass("active");
      $('#neti').addClass("order-1");
      $('#sife').addClass("order-2");

1 个答案:

答案 0 :(得分:1)

有多个问题

(function () {
    //function declaration syntax was wrong
    function clearOrder() {
        return $('.tile').removeClass("order-1 order-2 order-3 order-4 order-5 order-6 order-7 order-8 order-9 order-10 order-11 order-12 order-13 order-14 order-15 order-16");
    };

    jQuery(function ($) {
        $('#neti').click(function () {
            //add () to the end of the function reference to invoke it
            clearOrder();
            // this is not a string literal, it has to be used as a keyword(without enclosing '') to refer the current clicked element
            $(this).addClass("active");
            $('#neti').addClass("order-1");
            $('#sife').addClass("order-2");

        });
    });

}).call(this);

演示:Fiddle