Библиотеки JavaScript + плагины jQuery противоречат друг другу: как отлаживать?

Я не самый лучший эксперт, но я могу сделать достойную работу с красивыми и функциональными веб-сайтами или веб-приложениями. Моими основными инструментами являются PHP5, HTML5, CSS2 и 3, база данных (SQLite, MySQL), а также JavaScript и jQuery.

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

На самом деле, мое приложение делает то, что я хочу, за исключением определенного поведения. Ошибок нет, вроде все нормально, но ошибка сохраняется. Так что, может быть, мне нужно указать класс, о котором я не знаю, или один противоречит другому из другого плагина, и я просто не могу понять, например, почему <button type="button">DON'T submit</button> просто отправляет форму.

В любом случае, я хочу сказать: как я могу отладить эту ситуацию? Есть ли общий инструмент, предложение, рабочий процесс или что-то, что поможет мне понять конфликты или упущения между библиотеками или плагинами? (библиотеки JavaScript, мои собственные плагины JavaScript и jQuery)?

Редактировать

Я знаю об отладчике Chrome и Firebug. Но, возможно, я просто не знаю, как получить нужный мне функционал. Чтение о том, как использовать эти инструменты, мне не помогло. Например: у меня есть тег, который наследует класс, которому я не назначал его вручную (пример: <button type="button" disabled>DON'T submit</button> я не писал отключенный сам) Итак, какой-то файл JavaScript назначает его, но как я могу увидеть, КТО сделал это? Какой файл? Класс? Плагин? Библиотека? И т.д? Это еще один пример того, что я хочу спросить.


person Metafaniel    schedule 31.05.2012    source источник
comment
Хорошо, так какой у тебя вопрос? Как отлаживать всю страницу?   -  person MetalFrog    schedule 31.05.2012
comment
Что ж, мой вопрос в том, что если все, что связано с Javascript, не генерирует никаких ошибок и, следовательно, не дает мне никаких подсказок, как я могу отлаживать или выяснять, почему происходит какое-то неправильное поведение? Спасибо =)   -  person Metafaniel    schedule 31.05.2012
comment
В том-то и дело, что плохого поведения? Кнопка отправки формы?   -  person MetalFrog    schedule 31.05.2012
comment
Это только один пример. Я не буду более конкретным, потому что я сам не уверен, в чем может быть проблема, в первую очередь, и вы здесь не для того, чтобы решать мою жизнь, хе-хе, я ДОЛЖЕН учиться, поэтому я хочу получить от вас несколько советов; Я пытаюсь получить общие ответы, если это возможно, в такой ситуации. Я уверен, что это должно быть потому, что я использую много плагинов JQuery и смешиваю их функциональность.   -  person Metafaniel    schedule 31.05.2012
comment
Я знаю, что мой вопрос общий, немного странный, но я просто хочу узнать, что делать в такой ситуации.   -  person Metafaniel    schedule 31.05.2012


Ответы (3)


Возможно, вы используете две библиотеки, использующие функцию $(). В jQuery функция $() является просто сокращением для jQuery(), поэтому вы можете попробовать взять свой код jQuery и заменить каждый экземпляр "$(" на "jQuery(" и посмотреть, поможет ли это. Не зная, какие сценарии вы используете, я не могу сказать, сработает это или нет, но это, вероятно, проблема, если у вас одновременно загружено более одного фреймворка (например, jQuery).

Просто убедитесь, что вы не меняете функции, отличные от jQuery, с $() на jQuery(), иначе они сломаются.

person Anthony Atkinson    schedule 31.05.2012
comment
Кстати, вот хорошая статья на веб-сайте jQuery об использовании jQuery в неконфликтном режиме. - person Anthony Atkinson; 31.05.2012
comment
Я знаю, что не поделился с вами своими сценариями, но это именно то, чего я хочу: идеи, подобные вашим, с этим общим чувством, которое может помочь. Я попробую ваш ответ в ближайшее время;) Большое спасибо. - person Metafaniel; 31.05.2012
comment
ПРИВЕТ! МОЛОДЦЫ =D Вы такой детектив, вы догадываетесь, что делать, даже не глядя на мой код, СПАСИБО =) Я не знал, что это существует =) - person Metafaniel; 01.06.2012

Функциональность тега ‹button› по умолчанию такая же, как и у ‹input type="submit"›.

http://htmldog.com/reference/htmltags/button/

person Adrian J. Moreno    schedule 31.05.2012
comment
Да, я знаю, спасибо;) Я только что добавил этот ответ сегодня ссылка Но это не единственная моя проблема. Я хотел бы знать, как узнать, не генерирует ли все, что связано с Javascript, никаких ошибок и, следовательно, не дает мне никаких подсказок, как я могу отлаживать или выяснять, почему происходит какое-то неправильное поведение? Спасибо =) - person Metafaniel; 31.05.2012

Да, есть инструменты для отладки javascript.

Chrome как встроенный отладчик (нажмите F12, чтобы открыть его)

Но мне больше всего нравится firebug (это дополнение для firefox, загрузите его с здесь)

Чтобы решить конфликтную проблему, прочитайте здесь

Кроме того, по умолчанию <button> отправляет файл form.

Если вы не хотите, чтобы <button> отправлял form, вы можете использовать это,

<button type="button" onclick='return false;'>DON'T submit</button>
person Jashwant    schedule 31.05.2012
comment
Спасибо за вашу помощь. Однако я знаю все, что вы уже сказали... Я сейчас использую отладчик Chrome, а также Firebug... Это моя проблема. Может быть, я просто не знаю, как определять вещи... Например: тег наследует класс, который я не писал, поэтому его должен назначать Javascript. Как я могу знать, где он это берет, если на вкладке «Стили» в отладчике я просто получаю то, что это применяется, но не КТО это применяет??? Не знаю, правильно ли я понимаю =( - person Metafaniel; 31.05.2012