У меня есть две таблицы стилей для страницы, над которой я работаю. Когда выбрана альтернативная таблица стилей, мне нужно запустить дополнительную функцию, чтобы получить желаемый эффект. Итак, мой вопрос: как я могу написать javascript для выполнения этого блока кода только тогда, когда активна альтернативная таблица стилей?
CSS переключается с помощью двух кнопок и styleswitcher.js примерно так:
<ul class="viewbuttons">
<li><a class="threedview" href="#" onclick="setActiveStyleSheet('default'); return false;">3D View</a></li>
<li><a class="twodview" href="#" onclick="setActiveStyleSheet('alternate'); return false;">2D View</a></li>
</ul>
и что касается javascript, я взял специальный код альтернативной таблицы стилей (twodview) и поместил его в функцию щелчка, которая будет активирована при переключении таблицы стилей
$("a.twodview").click(function(){
all my terrible noob code
});
так что это, очевидно, работает в первый раз, когда он переключается на 2dview, но после переключения код остается. То, что я сейчас ищу, это как установить функцию по следующим направлениям:
$("a.threedview").click(function(){
remove all my terrible noob code activated by the twodview
});
первый вариант, который я исследовал, пытался определить активную таблицу стилей как переменную в цикле while, но, к моему большому удивлению, в голове ничего не меняется с помощью styleswitcher.js, поэтому я не понимаю, как это происходит переключение css (магия, я полагаю)
Это возвращает меня к попытке использовать события .click (), как показано выше, какие-либо предложения?
Спасибо всем.
обновление:
$("a.twodview").click( function() {
$('img.small01').off('mouseenter');
$('div#makeMeScrollable01').off('mouseleave')
$('img.small02').off('mouseenter');
$('div#makeMeScrollable02').off('mouseleave')
$('img.small03').off('mouseenter');
$('div#makeMeScrollable03').off('mouseleave')
});
$("a.threedview").click( function() {
$('img.small01').on('mouseenter');
$('div#makeMeScrollable01').on('mouseleave')
$('img.small02').on('mouseenter');
$('div#makeMeScrollable02').on('mouseleave')
$('img.small03').on('mouseenter');
$('div#makeMeScrollable03').on('mouseleave')
$('div#booma').off('click');
});
$("a.twodview").click( function() {
$('div#booma').click( function() {
setTimeout(function(){$("div#makeMeScrollable01").addClass("currentslide");},2100);
setTimeout(function(){$("div#makeMeScrollable01").appendTo("body");},2100);
$("div#makeMeScrollable01").smoothDivScroll("enable");
setTimeout(function(){$("div#makeMeScrollable01").smoothDivScroll();},2100);
setTimeout(function(){$("img.small01").hide();},2100);
});
});
Итак, я выяснил, как можно переключать функции наведения / клика между 3D-видом и 2D-видом, проблема в том, что часть .on (), которая должна перепривязывать hoverIntent () при переключении обратно в 3D вид не работает.
Может быть, проблема в hoverIntent ()? разделение .off () на mouseenter и mouseleave работает нормально, хотя я не уверен, что это так.
Мне кажется, что мой метод .on () правильный, но не реализован правильно, есть предложения?