#javascript #jquery
#javascript #jquery
Вопрос:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<script type="text/javascript" src="http://code.jquery.com/jquery-latest.min.js"></script>
<link rel="stylesheet" href="../../fancybox/source/jquery.fancybox.css?v=2.1.5" type="text/css" media="screen" />
<script type="text/javascript" src="../../fancybox/source/jquery.fancybox.pack.js?v=2.1.5"></script>
<script type="text/javascript" src="../../js/cufon-yui.js"></script>
<script type="text/javascript" src="../../js/TitilliumText.font.js"></script>
<script type="text/javascript" src="../../js/cufon-replace.js"></script>
<script type="text/javascript" src="../../js/shortcode.js"></script>
<script type="text/javascript" src="../../js/scripts.js"></script>
<script type="text/javascript" src="../../js/custom.js"></script>
</head>
...
<script type="text/javascript">
$(document).ready(function() {
$(".fancybox").fancybox();
});
</script>
</body>
Потерпите меня, поскольку я довольно новичок в веб-разработке и только что попал в этот проект.
Я внедряю fancybox, для которого требуется загрузка jQuery. Однако, похоже, существует какой-то конфликт с scripts.js
и custom.js
, поскольку, когда я включаю их, fancybox не работает. К сожалению, мне нужно включить оба этих скрипта.
Я пытался использовать jQuery.noConflict();
в нескольких местах, но безрезультатно. Я не уверен, куда идти дальше
Вот два файла problem .js (если это необходимо).
custom.js:
scripts.js:
Комментарии:
1. Какие ошибки вы получаете в консоли javascript? (F12)
2. «Не работает» не является полезным описанием проблемы.
3. Консоль не показывает ошибок.
4. Не работает, поскольку ожидаемое поведение при открытии фотографии в «лайтбоксе» не происходит. он просто открывает фотографию как внешнюю ссылку. это ничего не делает
Ответ №1:
проверьте это
http://api.jquery.com/jquery.noconflict/
и будьте осторожны с другими библиотеками, которые используют такие держатели, как «$» jquery
если вы реализуете noConflict, вам нужно вызывать функции jquery следующим образом
jQuery(document).example();
Ответ №2:
Вызовите jQuery.noConflict() перед загрузкой custom.js или добавьте его в начало файла, а затем измените каждый
$(document).ready(function(){
Для
jQuery(document).ready(function(){
Внутри этих функций вы можете использовать $, как обычно
Ответ №3:
Fancybox — это плагин jQuery, документированный для работы с $
селектором. Вы должны удалить все jQuery.noConflict()
вызовы, поскольку они потребуют изменения каждого использования $
во всех ваших сценариях.
Вы проверили консоль javascript на наличие ошибок?
Если в консоли нет информации, то выявить проблему будет намного проще, если сначала сузить объем кода, который может быть ответственным. Убедитесь, что Fancybox работает при удалении обоих scripts.js
и custom.js
, затем проверьте, работает ли он только с custom.js
удаленными. Как только вы определите ответственный файл, закомментируйте нижнюю половину модулей в ответственном файле и проверьте еще раз. Продолжайте добавлять половину модулей обратно и перепроверять, пока не найдете модуль, который вызывает проблему.