2014-11-16 6 views
0
$(document).ready(function(c) { 
    $('.alert-close').on('click', function(c){ 
    $(this).parent().fadeOut('slow', function(c){ 
    }); 
    }); 
}); 

В этом кодексе в чем смысл function(c)?Какова цель аргумента функции готовности документа?

+0

Событие слушатель. – simonzack

+0

@simonzack Сэр благодарит за внимание, пожалуйста, дайте мне знать ... что он делает? – Mani

+0

Выполняется, когда документ готов. – plalx

ответ

0

согласно jQuery.on() | jQuery API Documentation

.on(events [, selector ] [, data ], handler); 
  • обработчиком Type: Function(Event eventObject [, Anything extraParameter ] [, ... ]) является:

    функция, которая выполняется при возникновении события. Значение false также допускается как сокращение для функции, которая просто возвращает false.

Следовательно, function(c) является головной функцией, выполняемой при возникновении события; c - объект события, переданный телу события. Многие программисты используют event или e так легче было бы вспомнить, что аргумент означает:

function(c) //head of handler 
{ //body of handler start 
    //the code that will be executed 
} //body of handler end 

по себе function(c) ничего не значит и не служит никакой цели; это часть анонимной функции , обработчик события, если хотите, это будет выполняться каждый раз, когда происходит event.

0

$(document).ready принимает функцию прослушивателя в аргументе, который должен быть выполнен, когда документ (DOM) будет готов.

Функция jQuery передается как аргумент функции готовности слушателя.

Это полезно при вызове $.noConflict(), поскольку в этом случае переменная $ восстанавливается и больше не ссылается на jQuery.

Как правило, не рекомендуется полагаться на $, так как вы никогда не знаете, что будет вызван $.noConflict().

Вот что бы больше смысла:

jQuery(document).ready(function ($) { 
    //can use $ safely to reference jQuery in here 
}); 

(function ($) { 
    //can use $ safely to reference jQuery in here 
    $(document).ready(function() { 

    }); 
})(jQuery); 

Теперь, для других форм, таких как $('.alert-close').on('click', function(c) { то c не указывает на jQuery. Вместо этого он ссылается на event object, который может использовать, чтобы получить информацию о событии или отменить его/остановить его распространение.

Обратите внимание, что вы не используете объект события, тогда вы можете просто сделать $('.alert-close').on('click', function() {.

Наконец, по соглашению люди будут использовать переменную e для объекта события, а не c.

Вот как это может может быть переписана, чтобы сделать немного больше смысла:

jQuery(document).ready(function($) { 
    $('.alert-close').on('click', function() { 
    $(this).parent().fadeOut('slow'); 
    }); 
}); 
0
  • c в вашем случае можно назвать то, что (я предпочитаю называть его event).
  • сво Callback то будет данные после trigger
  • В Callback containes Event Object (JQuery Documentation)
  • Event Object основан на стандартном выходе, заданной W3 (ECMAScript)

Event Object содержит данные подключен к триггеру. В функции on он содержит данные, такие как:

  • Параметр typeArg является строкой.
  • Параметр canBubbleArg является булевым.
  • Параметр cancelableArg является булевым.
  • Параметр viewArg - это объект, реализующий интерфейс AbstractView.
  • Параметр detailArg - это номер.
  • Параметр screenXArg - это номер.
  • Параметр screenYArg - это номер.
  • Параметр clientXArg - это номер.
  • Параметр customerYArg - это номер.
  • Параметр ctrlKeyArg является булевым.
  • Параметр altKeyArg является булевым.
  • Параметр shiftKeyArg является булевым.
  • Параметр metaKeyArg является булевым.
  • Параметр buttonArg - это номер.
  • Связанный параметр TargetArg - это объект, реализующий интерфейс EventTarget.

See (documentation)

Его не обязательно использовать Callback. Но в некоторых случаях очень полезно (например, в вызове ajax)

0

C - объект прослушивателя событий. Если объект прослушивателя событий имеет какие-либо свойства, вы можете вызвать их внутри своего вызова функции. Все события разные, поэтому вам нужно будет взглянуть на API, чтобы узнать, есть ли у вас какие-либо возможности для вашего кода. В настоящее время c не требуется, потому что вы его не используете.

Вот jsfiddle для иллюстрации:

http://jsfiddle.net/larryjoelane/qwawg9u4/6/

Вот Java-код скрипки:

 $(document).ready(function(c) { 
     $('.alert-close').on('click', function(c){ 


$(this).parent().fadeOut('slow', function(c){ 

    /* 
     c is the event listener object 
     some peopele use e or event instead but it doesn't matter 

     you can prevent default actions of elements 
     like links or form submission buttons by using the event 
     listener object. 

     for example: 
     would stop the default action of an element 
     the div used doesn't have one so it will 
     create an error and return undefinded 
     c.preventDefault(); 

     another example: 
     This would stop the event from going up the document object 
     model to other elements 
     It's not necessary here though because you are using the 
     parent() function to select the parent div only 
     so this will also return an error of undefined 
     c.stopPropagation(); 
    */ 

     /* 
     this will display the event listener object it will be 
     undefined on the jquery function you are using 
     */ 
     //alert(c); 

    /* 
     A good use for the event listener would be to capture 
     capture keycodes of the keyboard presses display them or 
     do perform an action if a user presses a certain key like 
     up arrow for example 
    */ 

     //you could do something like this 
    $(window).on("keypress",function(event){ 

     //display the keycode pressed 
     //which is the property of the event object in this 
     //case 
     alert(event.which); 

    }); 

     }); 
     }); 
    }); 

Вот пример HTML:

  <div class="parent"> 

        I am the parent content 

       <div class="alert-close"> 

        hello im the alert close div container, click on me 

       </div> 
     </div> 
Смежные вопросы