簡體   English   中英

定義和調用自定義javascript函數的語法

[英]Syntax for defining and calling custom javascript function

如何在jQuery click事件中調用自定義函數?

我定義一個執行某些操作的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");

有多個問題

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

演示: 小提琴

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM