включение / отключение JavaScript для альтернативных таблиц стилей - PullRequest
2 голосов
/ 09 января 2012

У меня есть две таблицы стилей для страницы, над которой я работаю. Когда выбрана альтернативная таблица стилей, мне нужно запустить дополнительную функцию, чтобы получить желаемый эффект. Итак, мой вопрос: как я могу написать 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 () правильный, но не реализован правильно, есть предложения?

...