Показать сообщение отдельно
  #1 (permalink)  
Старый 27.04.2009, 05:19
Новичок на форуме
Отправить личное сообщение для Bratok Посмотреть профиль Найти все сообщения от Bratok
 
Регистрация: 27.04.2009
Сообщений: 6

В объекте не корректно работает инкремента (++ или +=1))
Трудность сдедующая. Есть код написанный мной (используется jquery ):
var PDNS = function() //это пространство имен
{   var pullDownList = new Object(); // это переменная в которй будем хранить объект описаный ниже
    function pullDownListI() // это объект который храниться в переменной выше, он является интрефейсом для работы с HTML элементами 
    {  this.index = 0;
        this.objId  = 0;
        
        this.init = function( objId  ) // инициализирует интерфейс при получении фокуса
        {	this.index = 0;
           this.objId = objId; 
	$( "#"+objId ).keyup( function(){ PDNS.pullDownList.keypress( event ) } )
			
        }
		
        this.reset = function( ) // сбрасывает все настройки интерсейса при потери фокуса
       {	this.index= 0;
           this.objId = null;
        }
		
        this.keypress= function ( event )
       {	   
	//////////////////////////////////////////	 	
	this.index++; //здесь проблемная зона
           ///////////////////////////////////////
            $( "#test" ).text( this.index ); // выводим результат в элемент #test , что бы не потерять фокус на элементе  
       }
    }
	
    return {	
       pullDownListI:	pullDownListI, //делаем публичными переменные
       pullDownList:	pullDownList
    }
}();
		

$(document).ready( function() 
{	
	
	PDNS.pullDownList = new PDNS.pullDownListI(); 
	
	var listElement = $("#element");
          //назначаем элементам выполнение функций при получении и потере фокуса
	for ( i=0; i<listElement.length; i++)
	{	var id = listElement[i].id;
		if ( id  )
		{	$( listElement[i] ).focus( function ( ) { PDNS.pullDownList.init( id  ) } );
			$( listElement[i] ).blur(  function () { PDNS.pullDownList.reset() } );
		}
	}
	
	//alert( listElement.length );
} );

При первом получении фокуса и выполнении this.index++, все ОК.
При потере и следующем получении фокуса this.index++ прибавляет 2 вместо 1. Если еще раз потерять и получить фокус прибавляться будет уже 3 и т.д. Кто знает вчем трудность и где ошибка подскажите, уже голову сломал. Или это глюк, какой-то.Код вроде простой.
Ответить с цитированием