Скрипт отказывается работать в последней версии jQuery
Здравствуйте!
подскажите как поправить, имеем карусель, вот кусок кода // navigation events if( $p_nav.length ) { $p_nav.bind('click.gridnav', function( e ) { if( $wrapper.data( 'anim' ) ) return false; $wrapper.data( 'anim', true ); nav[settings.type.mode].pagination( $wrapper, -1, settings ); return false; }); } if( $n_nav.length ) { $n_nav.bind('click.gridnav', function( e ) { if( $wrapper.data( 'anim' ) ) return false; $wrapper.data( 'anim', true ); nav[settings.type.mode].pagination( $wrapper, 1, settings ); return false; }); } на старых версиях jquery (1.6-1.8.1) все работает как часы, а только подключаешь версию 1.11.1 то перестают работать кнопки вперед назад, выдает вот такую ошибку: Uncaught Error: Syntax error, unrecognized expression: .tj_row_1 и скрипт не срабатывает. помогите разобраться! полный код можно посмотреть тут |
Вероятно ошибка в этом - 'click.gridnav'
http://api.jquery.com/bind/ |
krasovsky, зачем искать где-то в другом месте ошибку, если сама ошибка сообщает в чем проблема:
Цитата:
В коде есть такой фрагмент: var currentRows = '', nextRows = ''; for( var i = 0; i < opts.rows; ++i ) { currentRows += '.tj_row_' + (config.currentRow + i) + ','; Так вот, это неправильный подход. Надо складывать все в массив, а потом соединить его запятой: array.join(',') |
а можно чуть подробнее как все это воплотить?
|
На примере этих двух строчек:
var currentRows = [], nextRows = ''; for( var i = 0; i < opts.rows; ++i ) { currentRows.push('.tj_row_' + (config.currentRow + i)); ... Потом, currentRows = currentRows.join(',') |
danik.js спасибо!
все получилось |
помогите разобраться до конца, скрипт прекрасно работает но ровно до того момента, пока не пытаешься вывести содержимое в два ряда
methods = { init : function( options ) { if( this.length ) { var settings = { rows : 2, код, прекрасно работающий при rows : 1, то есть передается нужное значение от первого массива ко второму, а необходимо передать от первого и второго ко второму и третьему var currentRows = [], nextRows = ''; for( var i = 0; i < opts.rows; ++i ) { currentRows.push('.tj_row_' + (config.currentRow + i)); currentRows = currentRows.join(','); (dir === 1) ? nextRows += '.tj_row_' + (config.currentRow + opts.rows + i) + '' : nextRows += '.tj_row_' + (config.currentRow - 1 - i) + ''; } перестает работать, выдавая ошибку Uncaught TypeError: undefined is not a function и указывает на currentRows.push('.tj_row_' + (config.currentRow + i)); как можно это поправить, подскажите? |
Цитата:
|
в теории понимаю, но вот с воплощением в жизнь уже второй день ни как..
помогите еще раз пожалуйста |
ну ни как не получается.
может кто нить все же поможет? |
вопрос решен
тему можно закрывать |
Нужно добавить
nextRows = nextRows.substring(0, nextRows.length - 1);перед всеми currentRows = currentRows.join(',') и все |
Ребята, всем привет.
Все сделал как выше описано, но вот только теперь выдает ошибку Uncaught TypeError: currentRows.push is not a function что с этим делать? Спасибо большое |
Часовой пояс GMT +3, время: 10:23. |