Я только начал смотреть на JQuery. В настоящее время в моем веб-приложении нет AJAX.
Мой существующий JavaScript в моем HTML выглядит так:
<form ...>
<p>Find what? <input ...></p>
<div class="ButtonArray">
<a href="AddRecord.ASP&Action=ADD">ADD</a>
<a href="#" onClick="return MyFormSubmit();">FIND</a>
</div>
</form>
Отображаются кнопки для [Добавить] и [Найти]. Для Find необходимо отправить форму, и я использую MyFormSubmit (), которая проверяет данные, добавляет визуальный эффект на страницу, а затем отправляет данные.
Я мог бы добавить CLASS или ID для кнопки Find, а в JQuery я мог бы написать что-то вроде:
$(function() {
$(".MySearchButtonClass").click(function() {
// validate and process form here
});
});
На моей "начинающей" стадии понимания с JQuery я не понимаю , почему я сделал бы это так
Мой старый способ идентифицирует Метод рядом с объектом. Может существовать риск того, что JS не загрузится до того, как пользователь нажмет кнопку (есть ли? ЗАГРУЗКА для JS находится прямо вверху страницы).
Метод JQuery Document Ready не будет активирован до тех пор, пока документ не загружен (что, как я полагаю, гарантирует, что JS все присутствует и готов к запуску?), Но он перемещает код в отдельную часть моего HTML-файла - поэтому, когда я вижу MyButtonArray DIV в исходном коде HTML, для меня не очевидно, какие объекты имеют методы, а какие нет.
Не могли бы вы помочь мне понять, какие у меня есть варианты и преимущества / недостатки, на которые мне следует обратить внимание?
Редактировать : Мне удобно, что манипуляции с DOM - такие как LightBox, которые могут появляться при нажатии на любую миниатюру с классом "LightBoxThumb" - будут использовать ненавязчивый JavaScript.
Однако я изо всех сил пытаюсь убедить себя, что у кнопки, для которой есть определенное действие, должен применяться такой метод. (Я, конечно, не стал бы добавлять на кнопку какой-либо код, кроме одного вызова функции для чего-то «в другом месте», но, на мой взгляд, это мой лучший ключ к пониманию того, что делает эта кнопка, и слои ненавязчивого Javascript могут сделать это намного сложнее определить.)
Edit2 - Принятый ответ
Я взял ответ Расса Камса. Он описывает ненавязчивый Javascript таким образом, который помог мне понять больше о том, как и когда это следует использовать.
На данный момент (может измениться, когда у меня будет больше опыта!) Я буду придерживаться события OnClick для одного неизменного действия над объектом, так как я чувствую, что мне будет легче отлаживать - и диагностировать если возникнут проблемы. Для ZebraStripes в таблице, которая позволяет сортировать щелчок по столбцу заголовка (и ситуации такого типа), я вижу преимущества подхода ненавязчивого Javascript
Последний комментарий Русса был особенно полезен, повторяется здесь:
"@ Кристен - Ты права, как много
тем программирования, есть больше
чем один подход, и люди будут
яростно поддерживаю их убеждения! Если
мы говорим об одном методе
для одной кнопки, я полностью
понять, откуда ты ...
Если мы говорим о многих
JavaScript, с теми же вызовами функций
для более чем одного элемента, разные
вызовы функций для разных методов,
и т.д. я думаю что было бы больше
Сложно смешивать
и ненавязчивые подходы, и это
было бы лучше принять один или
Другой подход "