Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 18.10.2014, 18:19
Новичок на форуме
Отправить личное сообщение для ToshuK Посмотреть профиль Найти все сообщения от ToshuK
 
Регистрация: 18.10.2014
Сообщений: 9

Исправление ошибки Uncaught TypeError: undefined is not a function
Помогите пожалуйста исправить ошибку "Uncaught TypeError: undefined is not a function". Появилась после обновления движка.

Из за ошибки не могу открыть выпадающий список.

Вот кусочек кода из .js файла, где ошибку выдает (ошибка на 7-й строке):
var explayMovieLangImportVideoLabelsLimit = 0,
explayMovieImportVideoLabelsEmpty = '';

$( function( ) {
    // Выпадающие списки
    if ( $( '.explaySelect' ).length > 0 ) {
        $( '.explaySelect' ).live( 'click', function( evt ) {
        	var toElement = evt.target || evt.srcElement;
            if ( toElement.parentNode.className != 'explayElements' ) {
                if ( $( '.explayElements:visible' ).length > 0 ) $( '.explayElements' ).hide( );
                else $( this ).find( '.explayElements' ).show( );
            }
        } );
        $( 'body' ).click( function( evt ) {
        	var toElement = evt.target || evt.srcElement;
            if ( toElement.parentNode.className != 'explayOverlay' &&
            	 toElement.parentNode.className != 'explayElements' &&
            	 toElement.parentNode.className != 'explaySelect' &&
            	 toElement.parentNode.className != 'explaySelect labels' ) $( '.explayElements' ).hide( );
        } );
        $( '.explaySelect .explayElements span' ).live( 'click', function( ) {
            var elementId = $( this ).parent( ).parent( ).attr( 'data-param' );
            
            if ( elementId == '#labels' ) {
                if ( $( this ).hasClass( 'selected' ) ) {
                    $( this ).removeClass( 'selected' );
                    var tempValue = $( this ).attr( 'data-value' );
                    
                    $( elementId ).val( explayMovieStrReplace( '[' + tempValue + ']', '', $( elementId ).val( ) ) );
                    $( elementId + '-cnt' ).val( parseInt( $( elementId + '-cnt' ).val( ) ) - 1 );
                    
                    var tempInt = parseInt( $( elementId + '-cnt' ).val( ) );
                    var $element = $( this ).parent( ).parent( ).parent( ).find( '.optionTitle' );
                    
                    if ( tempInt > 0 ) {
                        newString = explayMovieStrReplace( $( this ).text( ) + ', ', '', $element.text( ) );
                        newString = explayMovieStrReplace( ', ' + $( this ).text( ), '', newString );
                        newString = explayMovieStrReplace( $( this ).text( ), '', newString );
                       $element.text( newString );
                    } else $element.text( explayMovieImportVideoLabelsEmpty );
                } else {
                    if ( parseInt( $( elementId + '-cnt' ).val( ) ) < explayMovieLangImportVideoLabelsLimit ) {
                        $( this ).addClass( 'selected' );
                        
                        $( elementId ).val( $( elementId ).val( ) + '[' + $( this ).attr( 'data-value' ) + ']' );
                        $( elementId + '-cnt' ).val( parseInt( $( elementId + '-cnt' ).val( ) ) + 1 );
                        
                        var tempInt = parseInt( $( elementId + '-cnt' ).val( ) );
                        var $element = $( this ).parent( ).parent( ).parent( ).find( '.optionTitle' );
                        
                        if ( tempInt > 0 ) {
                            if ( tempInt > 1 ) $element.text( $element.text( ) + ', ' + $( this ).text( ) );
                            else $element.text( $( this ).text( ) );
                        } else $element.text( explayMovieImportVideoLabelsEmpty );
                    }
                }
            } else {
                var tempText = explayMovieStrReplace( '&nbsp;', '', $( this ).html( ) );
                $( elementId ).val( $( this ).attr( 'data-value' ) );
                $( this ).parent( ).parent( ).parent( ).find( '.optionTitle' ).html( tempText );
                $( this ).parent( ).hide( );
            }
        } );
    }
Ответить с цитированием
  #2 (permalink)  
Старый 18.10.2014, 18:48
Аватар для Safort
Профессор
Отправить личное сообщение для Safort Посмотреть профиль Найти все сообщения от Safort
 
Регистрация: 23.12.2013
Сообщений: 1,856

Если не путаю, то это из-за jQuery-метода live, который убрали в последних версиях. Вместо него нужно использовать on.
Ответить с цитированием
  #3 (permalink)  
Старый 18.10.2014, 20:24
Новичок на форуме
Отправить личное сообщение для ToshuK Посмотреть профиль Найти все сообщения от ToshuK
 
Регистрация: 18.10.2014
Сообщений: 9

Спасибо большое, заменил - все стало на свои места!
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
$('my').load(); Как сделать, чтобы это заработало mycoding Общие вопросы Javascript 25 02.10.2016 23:43
Uncaught TypeError: undefined is not a function Levitan Элементы интерфейса 6 30.07.2014 11:41
хитросплетения Global,контекст,this,Reference kefi Общие вопросы Javascript 109 20.11.2009 23:34
Модуль для работы с геометрией окна JSprog Библиотеки/Тулкиты/Фреймворки 25 31.08.2009 12:54
Помогите исправить скрипт по поиску в базе данных dok_sj2 Internet Explorer 2 29.06.2009 20:04