|
ДОброго времени суток вот наш код
------------------- <script type="text/javas?1?ript" src="../js/jquery.js"></script> <script type="text/javas?1?ript"> $(document).ready(function( ) { $('table.striped tr:even').addClass('even'); $('table.striped tbody tr').mouseover(function() { $(this).addClass('highlight'); $(this).css('cursor','pointer'); }).mouseout(function() { $(this).removeClass('highlight'); }); }); </script> --------------------------------------- Итак что я не врубаю ну практически всё за исключением что конструкция $('елемент') являеться обращением к конкретному элементу css тогда вот это что $(document)....Дальще что я понимаю что mouseover,.mouseout это события. function( ) я вообще нафиг не понимаю что за хр...Просьба обьяснить всё по полочкам затратить не большой промежуток своего времени.Заранне буду благодарен.Большая просьба не писать одноклеточным созданиям,педагогам программистам которые хотят наживится на моём обучение,начинающим незнайкам и всякой нечести.ДА и ещё с книги откуда я взял это очень не понятно всё обьясняют вот даже подумываю что зря выкинул деньги на неё. Полный архив штмл страницы с цсс и картинками +JS выложу тут http :// files . mail . ru/Y5ZWVD открывайте каталог chapter06 файл complete_6.1.html.В адрессе лишние пробелы
2
Алексей
$(document).ready(function( ){ [....]}) - означает что [....] выполниться когда объект DOM будет готов (хтмл подгружен а картинки например нет)
$('table.striped tr:even').addClass('even'); - каждому четному тегу tr в таблицах с классом "striped" добавляем класс "even" $('table.striped tbody tr').mouseover(function() { $(this).addClass('highlight'); $(this).css('cursor','pointer'); }).mouseout(function() { $(this).removeClass('highlight'); }); - - на каждый tr в tbody таблице с классом "striped" навешиваем два обработчика событий, первый срабатывает при наведение мышкой, второй когда курсор уводим с эллемента. В первом случае tr будет добавлен класс "highlight", и курсор над ним будет "pointer". Во втором случае мы убираем "highlight". Таким образом я думаю там просто возникает реакция на наведение. Если что то непонятно пишите...
3
Евгений
Погоди давай сначала мы обращаемся к $(document) и говорим ему делать ready (),тоесть выполнять ready с аргументом() после того как document прочитан?
ТОгда вопрос обращяться к элементу согласно Джи квери мы можем таким макаром $(' '),а здесь $(document) без скобок?Или как?
4
Рост
$(document).ready(function( ) {
// Здесь код }); Эта конструкция означает, что когда DOM будет готов, выполнить такой-то код
5
Алексей
ready - обработчик события "готовности", и он навешиваеться на document, значит он сработает когда document будет готов.
В качестве параметра мы можем указывать много что, в том числе и xpath выражение, и css выражение, и элемент (например document.getElementById("blablabla")) и функцию, и хтмл
6
Евгений
Обращяться к элементу согласно Джи квери мы можем таким макаром $(' '),а здесь $(document) без скобок?Как прокоментируете?
7
Рост
Никаких кавычек в $(document) не должно быть. И если тебе что-то не нравится пиши создателям фреймворка
8
Рустам
document - это объект, а не строка, поэтому без кавычек
9
Алексей
document - это изначально объект, поэтому он изначально идет без скобок, как и document.getElementById("blabla") тоже объект
никто не мешает написать $(document.getElementById("blabla")) что в свою очередь равно $("#blabla"), а также $(document.body) = $("body"). Теперь понятно?
10
Рост
document - это обьект, как писали выше Алексей и Tidal Wave.
Тип "обьект", а не "строка". Когда ты передаешь в функцию число ты скобки не пишешь, так само и с обьектами
11
Евгений
Алексей Spiridon Спиридонов
---------------------------- Так теперь становится интересней если обьект-синтаксис такой - $(обьект) ,если это элемент то синтаксис такой - $('элемент html') верно Алексей?
12
Алексей
в скобках может быть указан как html так и другое, например выражение xpath, все зависит от того что вы хотите получить.
$('элемент html') - служит для создания хтмл "на лету" и добавления его куда то например $("<br />").appendTo("#elem") - добавит br в теги елемента id которого равно elem
13
Евгений
А про $(обьект) вы не сказали значит так по синтаксису Джи квери мы обращяемся к обьектам?
14
Алексей
Евгений, прочитайте например (http://http://www.rsdn.ru/article/inet/jQuery.xml - легко объясняется по русски, или же http://docs.jquery.com - оф. документация) если чего не поймете, то с радостью отвечу на ваши вопросы, а сейчас мой раб. день подошел к концу и я пошел пить пиво
15
Игорь
Евгений Салиев. не трать время других. читай документацию.
http://docs.jquery.com/Core jQuery Core варианта аргументов для функций $ и jQuery строка селектором $( 'div a') Возвращает набор элементов обернутый в jQuery html $( '<a href="#">aaa</a>') Создает элемент и оборачивает его в jQuery Элемент $(document) Оборачивает элемент в jQuery Функция $(function() { // здесь код }) Сокращенная запись для $(document).ready(function() { //здесь код }) что значит обернутый в jQuery? объект(ы) кладут в расширенный массив, у которого есть все методы jQuery оригинальные объект(ы) доступны как элементы через метод [] ($('div a')[12] - 12ая ссылка в div)
16
Игорь
относительно "нужны кавычки или нет?"
кавычки не нужны. jQuery подумает что это селектор, но тэга document не найдет и вернет пустой массив и функция, которую вы повесите на загрузку никогда не выполнится. ошибки видно не будет
17
Евгений
Алексей спасибо...Кстати пивоо вредно....
18
Вадим
млин а не бывает в отладчике исходники запустить (firefox+firebug)? если уж лень доки читать
jQuery является одним из самых простых фреймворков, но без знания jScript спецификации вопросы типа - почему в параметр передается ф-я будут возникать всегда, и, в принципе, все правильно вам ответили можно делать $('document') - только тогда сработает селектор, т.е. дольше до объекта будет добираться, сокращенная форма инициализации: $(function() { ... } ); и вы определитесь вам принципиально ответ получить или посраццо с человеком который вам чем-то не понравился... |


Рустам