2009-12-09 2 views
0

На некоторых моих страницах я хочу, чтобы Superfish (плагин меню) раскрывал один из параметров первого уровня по умолчанию, как только открывается страница. Я приписал эту опцию ul id = "me" и попытался реализовать функцию onInit, но она не работает. Может ли кто-нибудь посмотреть? Благодарю.Superfish, чтобы открыть опцию «onInit»

jQuery(function(){ 
jQuery('ul.sf-menu').superfish({ 
    onInit: function(){$('#me',this).show();}, 
    }); 
}); 

ответ

0

Есть ли ошибки на сайте?

возможные проблемы с сниппеты вы публикуемыми:

  • onInit не дозвонились по какой-либо причине. с alert или console.log
  • this в onInit не является КНИКОМ. это может быть объект jquery. проверьте с console.log

plus, у вас есть синтаксическая ошибка: последнее свойство в литерале объекта не должно сопровождаться запятой.

+0

Спасибо за ваш ответ. Я постараюсь проверить, что вы предложили завтра (у меня установлен Firebug, но я еще не знаю, как его использовать, я - нуб). Кроме того, теперь я думаю, что мне лучше найти способ динамически передать «видимый» css для этой опции с PHP, чтобы он работал с отмененным JS? – Ted

+0

Существует не так много для основного использования firebug (я не выкапывал за консоль и монитор сетевого трафика [вкладки консоли и сети]). Да, если вы хотите, чтобы он работал с javascript или без него, вы должны настроить исходное состояние без javascript. например, измените '# me' на' .open', остальное будет свернуто с помощью css. –

0

Хорошо, часть CSS была простой. Он не использует никаких значений «видимости», вместо этого он меняет позицию поля с «сверху: -999em» (чтобы скрыть) до «сверху: 2.5em» (для отображения). я создал отдельный класс для моего, который просто копия SUPERFISH «изображаемой» коробки:

ul.open { 
left: 0; 
top: 2.5em; 
z-index: 99; 
} 

Теперь он работает, если JS отключен, но когда JS включен все варианты получить разрушились в любом случае. Вот лишь один из многих вариантов я пытался на этот раз:

onInit: function(){$('ul.open').addClass('ul.open');} 

и это не имеет никакого эффекта, как если бы этот класс не существует.

Если я пытаюсь:

onInit: function(){$('ul.open').html('hello');} 

слово «привет» появляется при наведении курсора мыши вместо подменю - но при наведении курсора мыши, а не «OnInit».

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