2017-02-19 2 views
1

У меня странная проблема, я не могу понять: Я работаю над шаблоном Joomla, который должен иметь кнопку, которая затухает/переключает другой слой. Используемый скрипт супер-простой и распространенный:jquery script работает только во время загрузки страницы

Кнопка: <button style="text-align: center;" id="button" class="btn btn-lg btn-success btn_daytours" data-ap-original-font-size="18px">Click here</button>

слой: <div class="tour_calendar" style="display: none;"><div class="moduletable span12">...</div></div>

Сценарий: // ПЕРЕКЛЮчЕНИЕ LAYER

$(window).load(function(){ 
    $("#button").click(function(){ 
     $("#tour_calendar").fadeToggle(); 
$(this).toggleClass("active"); return false; 
    }); 
}); 

... и нет, кажется, ничего плохого с этой настройкой, но проблема в том, что скрипт работает только после того, как страница загружается. Как только он полностью загружен, он больше не отвечает. Я попытался поместить функцию в разные места в коде, но проблема не устранена. Я на самом деле не кодер, а firebug не показывает никаких конфликтов, поэтому любой намек будет оценен. Пожалуйста, попробуйте для себя: https://biz211.inmotionhosting.com/~blackb78/blackbear2017/

и Thanx заранее

+0

Посмотрите в свою консоль. '$ не является функцией'. –

+0

Спасибо, Майкл! Эта ошибка, похоже, относится к паралаксу, хотя и работает нормально. Извините, если я неправильно понял ... как я писал: Im не кодер ;-) – Sawyer

+0

, если я помещаю любой код jquery в консоль на вашем сайте, он говорит мне, что '$ не является функцией'. –

ответ

0

Попробуйте удалить $(window).load(function() {}); и просто поставить этот код непосредственно.

$("#button").click(function(){ 
    $("#tour_calendar").fadeToggle(); 
    $(this).toggleClass("active"); 
    return false; 
}); 

Попробуйте.

1

$(window).load(function() { ... }); DEPRECATED и .load() даже сменила функционирование становится функцией обработки ajax.

Попробуйте изменить на:

$(window).on('load',function() { ... });

+0

Я закончил использовать '$ (document) .ready (function()' – Sawyer

+0

Это тоже будет работать: D Единственное различие заключается в том, что '$ (document) .ready (function()' возникает, когда страница открыта, в то время как '$ (window) .on ('load', function()' происходит, когда загружаются все элементы DOM страницы. –

0

Там, кажется, нет ни одного элемента с идентификатором "tour_element". Вместо этого есть элемент с классом «tour_element». Поэтому я предлагаю изменить $("#tour_calendar").fadeToggle(); на $(".tour_calendar").fadeToggle();.

+0

Thanx Harshit! Прошивка кода вокруг ... но класс - это то, что я в конечном итоге использовал ... конечно, теперь паралакс больше не работает. LOL В любом случае, это сценарий-конфликт, я уверен – Sawyer

0
$("#button").click(function(){ 
$("#tour_calendar").fadeToggle(); 
$(this).toggleClass("active"); return false; 
}); 

затем

$(window).load(function(){ 
$("#button").trigger("click"); 
}); 

если вы хотите какой-то другой место пример,

$(document).bind(function()){ 
$("#button").trigger("click"); 
} 

любое другое место, просто используйте следующий код внутри функции

$("#button").trigger("click"); 

Thats это

Смежные вопросы