Hyubert
@Hyubert
JS

Помоготи пожалуйста, не работает метод click ?!?!?

Остальной код работает нормально

Если прописовать в консоле браузера то он заработает

$(document).ready(function(){
    $('.sm_slider').smSlider({
    duration: 1500,
    autoPlay: true,
    delay: 20000,
    hoverPause : false
    });
});
$(document).ready(function(){
			var touch = $('.menu-bar li:first-child  a');
		    var menu = $('.sub-menu-bar-1');
		 
		    $(touch).on('click', function(e) {
		        e.preventDefault();
		        menu.slideToggle();
		    });
		});
$(function(){
	$('a[href*=#]').click(function(){
		$("html:not(:animated),body:not(:animated)")
			.animate({
				scrollTop: $($(this).attr("href")).offset().top}, 2000);
		return false;
	});
});
	$(document).ready(function(){
        $(window).scroll(function(){
            var bo = $("body").scrollTop();
            if ( bo > 990 ) { $(".cont").css("display", "block"); } 
            else { $(".cont").css("display", "none"); };
        });
    });
$('.cont').click(function() {
    $(".cont").toggleClass('rotate-m');
    $(".menu-link").toggleClass('close');
    $(".menu").toggleClass('rigth-m');
});
  • Вопрос задан
  • 901 просмотр
Решения вопроса 2
atlantech
@atlantech
Full Stack Software Developer
Такой контейнер точно существует? Попробуйте так:
$(document).ready(function() {
    $('.cont').click(function() {
        $(".cont").toggleClass('rotate-m');
        $(".menu-link").toggleClass('close');
        $(".menu").toggleClass('rigth-m');
    });
});
Ответ написан
Комментировать
@aphows
Кнопка не работала из-за того, что ее бинд на событие "клик" находился вне document ready, то есть элемента dom модели в тот момент, когда вы произвели бинд, не существовало. Небольшой и на скорую руку рефактор кода чуть ниже. Учитесь делать ваш код модульным и читабельным, если не можете построить архитектуру в соответствии с ООП - хотя бы группируйте код, оборачивайте в функции, как показано ниже. Ну и не забывайте о простом правиле: привязку событий (bind events) проводить в document ready. Клон кода на codepen
$(document).ready(function() {
  slider();
  mobileMenu();
  scrollToId();
  showContentOnScroll();
  contentMenu()
});

function slider() {
  $('.sm_slider').smSlider({
    duration: 1500,
    autoPlay: true,
    delay: 20000,
    hoverPause: false
  });
}

function mobileMenu() {

  var touch = $('.menu-bar li:first-child  a');
  var menu = $('.sub-menu-bar-1');

  touch.on('click', function(e) {
    /*    У вас было:  $(touch).on('click', function(e) {
      touch - уже объект jquery, его не нужно оборачивать в конструкцию $()
     если touch - строка, тогда его нужно обернуть в $(), если вы хотите применять функции jquery
     Пример:
     var touch = '.menu-bar li:first-child  a';
     $(touch) - объект jquery
     
     Хорошая практика  - называть переменные, которые являются объектами jquery, по принципу $var, так легче читать код вам и вашим коллегам
     $touch = $('.menu-bar li:first-child  a');  // объект
     touch = '.menu-bar li:first-child  a'; // строка
     $(touch) // объект jquery
     
    */
    e.preventDefault();
    menu.slideToggle();
  });
}

function scrollToId() {
  $('a[href*=#]').click(function() {
    $("html:not(:animated),body:not(:animated)")
      // что значит псевдокласс :animated ?  я такого не знаю
      .animate({
        scrollTop: $($(this).attr("href")).offset().top
      }, 2000);
    return false;
  });
}

function showContentOnScroll() {
  $(window).scroll(function() {
    var bo = $("body").scrollTop();
    if (bo > 990) {
      $(".cont").css("display", "block");
    } else {
      $(".cont").css("display", "none");
    };
  });
}

function contentMenu() {
  $('.cont').click(function() {
    $(".cont").toggleClass('rotate-m');
    $(".menu-link").toggleClass('close');
    $(".menu").toggleClass('rigth-m');
  });
}
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
надо убить лишнее, к примеру это $(function(){
$(document).ready(function(){ это вообще надо один раз обьявлять. это событие окончание загрузки документа
вобщем тут у вас "винигрет новогодний" :)
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы