#javascript #jquery #syntax-error
#javascript #jquery #синтаксическая ошибка
Вопрос:
Я думаю, что моя проблема очень мала, но мне все еще нужна помощь в моем коде jquery, я думаю, что все дело в синтаксисе js:
$(function() {
// Options for SuperBGImage
$.fn.superbgimage.options = {
randomtransition: 2, // 0-none, 1-use random transition (0-7)
z_index: -1, // z-index for the container
slideshow: 1, // 0-none, 1-autostart slideshow
slide_interval: 2000, // interval for the slideshow
randomimage: 1, // 0-none, 1-random image
speed: 'slow' // animation speed
};
// initialize SuperBGImage
$('#thumbs').superbgimage().hide();
});
$(function() {
var $j = jQuery.noConflict();
$j(document).ready(function(){
$j('.menu-nav li').hover(
function() {
$j(this).addClass("active");
$j(this).find('.ulwrapper').stop(false, true).fadeIn();
$j(this).find('.ulwrapper .ulwrapper').stop(false, true).fadeOut('fast');
},
function() {
$j(this).removeClass("active");
$j(this).find('div').stop(false, true).fadeOut('fast');
}
);
$j('.ulwrapper').hover(
function() {
$j('.parent').addClass("active_tab");
},
function() {
$j('.parent').removeClass("active_tab");
}
);
});
});
первый код предназначен для большого изображения, где другой предназначен для работы с моим многоуровневым меню. Я попытался обойти это, изменив
$(function() {
Для
$j(document).ready(function(){
но браузер запускает только один код! и дает мне:
Uncaught TypeError: Property '$' of object [object DOMWindow] is not a function
(anonymous function)
Я жду вашей помощи, большое спасибо.
Комментарии:
1. Почему вы вызываете «.noConflict ()»?
Ответ №1:
Как только вы вызовете jQuery.noConflict, привязка «$» больше не будет работать. Вы не говорите, почему вы это вызываете, но вы можете использовать просто «jQuery» вместо «$». Ваша переменная «$ j» является локальной для той функции, которую вы вызываете «noConflict».
Кроме того, это не имеет смысла делать:
$(function() {
$(function() {
// ...
});
});
что вы и делаете в этом втором «готовом» обработчике. То есть вы настраиваете «готовый» обработчик изнутри другого, что на самом деле не имеет смысла.
Комментарии:
1. правильно, спасибо за помощь. обе функции теперь работают просто отлично.
Ответ №2:
Для использования $ j в вашем скрипте вам следует вставить следующий код:
<script type="text/javascript">
$j=jQuery.noConflict();
</script>
Удачи..
Комментарии:
1. Я только удалил noConflict, предложенный Pointy, но действительно спасибо за участие.