2014-12-15 3 views
-1

Когда я попытался использовать JQuery с функцией переключения Я получаю эту ошибкуUncaught TypeError: не определено не функция переключения функции

Uncaught TypeError: undefined is not a function

Когда я нажимаю Див первый раз, когда он будет показывать слева направо, то броски эта ошибка, и она остановится там. Когда я снова нажму, он не скроется. Это код, который я использую.

$(function() { 
    $("#slideMenuHeader").click(function() { 
     //$("#cbp-spmenu-s1").slideToggle("slow"); 
     var anim = "slide"; 
     var duration = 500; 
     var options = { direction: 'left' }; 
     $("#cbp-spmenu-s1").toggle(anim, options, duration); 
    }); 
}); 

Если я использую переключатель без параметров объекта и продолжительности, он работает нормально. Но я хочу, чтобы слева направо переключался. Почему я получаю эту ошибку?

Я использую JQuery 1.10.2

+0

Я думаю, вам нужно просмотреть документы для [jQuery '.toggle()'] (http://api.jquery.com/toggle/). – Sparky

ответ

-2

Чтобы использовать все анимации вам нужно будет включить jQuery UI с effects

Если вы не хотите использовать JQuery UI вы можете использовать ниже код для простого toggle

$("#cbp-spmenu-s1").toggle(200); //use anim, options, duration to pass arguments 
+0

, пожалуйста, объясните свой ответ –

+0

Я передаю аргументы, как вы можете видеть код, который я предоставил. По умолчанию анимация не слева направо. – PSR

+0

Этот ответ не имеет никакого смысла. – Jai

1

Попробуйте следующее: 1> Вам также нужно будет указать jQuery UI.

Example

$(".myButton").click(function() { 

    // Set the effect type 
    var effect = 'slide'; 

    // Set the options for the effect type chosen 
    var options = { direction: $('.mySelect').val() }; 

    // Set the duration (default: 400 milliseconds) 
    var duration = 500; 

    $('#myDiv').toggle(effect, options, duration); 
}); 

2> Вы можете сделать это wihtout jQuery UI, а также:

Рабочий пример JSFIDDLE

+0

Я тоже делаю то же самое, но не работаю для меня. См. Код, который я предоставил. – PSR

+0

@sree вы можете добавить jquery ui вместе с jquery. – Jai

+0

@Sree Вы должны будете добавить 'http: // code.jquery.com/ui/1.10.3/jquery-ui.js' этот js. После основного JS –

1

Если посмотреть на the jquery docs, переключение() занимает до трех необязательных аргументов в следующих форматах:

.toggle([duration ] [, complete ]) 
.toggle(options) 
.toggle(duration [, easing ] [, complete ]) 

В коде, вы передаете три аргумента, так JQuery думает, что вы передаете длительность, функцию смягчения и обратный вызов срабатывают по завершению.

Но вы передаете объект опций, а не функцию ослабления. Вот почему я предполагаю, что это ошибка. Что вам нужно сделать, так это использовать второй формат и передать один объект объектов со свойствами для продолжительности и направления.

+0

Спасибо за предложение, но в свойствах нет свойства direction. Я что-то пропустил? – PSR

+0

Похоже, вам нужно использовать значение «step» для определения направления. Откуда у тебя идея «направления»? – Toby

+0

от googling Я получил этот пример http://jsfiddle.net/SkiWether/KFmLv/ – PSR

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