2015-09-06 1 views
2

Скажем, у меня есть две кнопки, как это:Ввод OnClick обработчиков тегов в сравнении с JS кодом

<input type="button" id="button1" value="click me 1" /> 
<input type="button" id="button2" value="click me 2" /> 

Что бы разница, кроме того, код отличается, положить атрибут onclick на одном из них , и используя jQuery для обработки другого?

HTML:

<input type="button" id="button1" value="click me 1" onclick="alert('Clicked button 1!');"/> 
<input type="button" id="button2" value="click me 2" /> 

JS/JQuery:

$(document).ready(function() { 
    $("#button2").click(function(){ 
     alert("Clicked button 2!"); 
    }); 
}); 
+0

_ «В чем разница, помимо кода, отличается от атрибута onclick на одном из них и с помощью jQuery для обработки другого?» _ Первая кнопка не требует jQuery для возврата результатов – guest271314

+0

@ guest271314 duh , вы видели **, кроме кода разные **? –

ответ

1

Они выполняют ту же самую вещь, но есть некоторые отличия:

  • Связывание событий в HTML существует, когда элемент создан, а событие, связанное с jQuery, добавляется несколько позже, когда документ завершен а также инициируется событие ready.

  • События jQuery являются многоадресными, то есть вы можете связывать несколько событий одного и того же типа с одним и тем же элементом.

+0

Ответил на мой вопрос отлично, спасибо! –

1

По сути, нет никакой разницы в функциональности двух элементов управления - они оба будут выполнять ту же команду.

Однако, если структура была правильно структурирована, ваш сайт должен загружать любые внешние скрипты (например, со вторым примером) для последней страницы, чтобы уменьшить время загрузки.

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

EDIT:

Однако при дальнейших исследованиях, кажется, современные браузеры более способны обрабатывать этот процесс, см: Where should I put <script> tags in HTML markup?

+0

Значит, HTML лучше? И проблема - это просто время? –

+0

@ TheJuniorProgrammer это зависит от того, как вы собираетесь его использовать –

2

Хорошо, эффект такой же. Однако есть некоторые отличия, такие как: В то время как первое событие является триггером при нажатии первой кнопки, содержимое загружается после загрузки страницы, второе запускается, конечно, после нажатия, но содержимое инициализируется каждый момент ,