прерывание кода jquery другим?

#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, но действительно спасибо за участие.