Javascript.RU

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

проблема с ООП
всем здравствуйте,
я не как не могу решить такую задачу,
обьявляется такой обьект,
Ext.onReady(function(){
......
});

в тем есть различные функции,
мне надо создать такую функцию которая будет,
меня те функции которые обьявлены.
проблема заключается в том что те переменные
которые были обьявлены
например
var top;
Ответить с цитированием
  #2 (permalink)  
Старый 15.03.2008, 21:21
Профессор
Отправить личное сообщение для Dmitry A. Soshnikov Посмотреть профиль Найти все сообщения от Dmitry A. Soshnikov
 
Регистрация: 25.02.2008
Сообщений: 707

scuter, уважаемый, я ннниче не понял! =) Одно вижу - Вы используете фреймворк Ext (больше ничего не понял из Вашего "вопроса")

Сообщение от scuter
обьявляется такой обьект,
не объявляется объект, он уже объявлен за Вас в самой библиотеке. Здесь вы описываете функцию, которая вызовется при событии onDocumentReady (вызываете "метод" onReady объекта Ext и передаете в качестве параметра свою функцию)

Сообщение от scuter
в тем есть различные функции,
мне надо создать такую функцию которая будет,
меня те функции которые обьявлены.
вообще ниче не понял! =)

Сообщение от scuter
проблема заключается в том что те переменные
которые были обьявлены
например
тут тем более! =)

P.S.: ну видите, что написали с опечатками и ошибками - можно же исправить, чтобы люди Вас понимали? Можно же внятно задавать вопросы?
Ответить с цитированием
  #3 (permalink)  
Старый 15.03.2008, 22:26
Отправить личное сообщение для Андрей Параничев Посмотреть профиль Найти все сообщения от Андрей Параничев
 
Регистрация: 21.02.2008
Сообщений: 1,250

Омг, сломал мозг пока читал вопрос.
Ответить с цитированием
  #4 (permalink)  
Старый 16.03.2008, 04:59
Аватар для scuter
Профессор
Отправить личное сообщение для scuter Посмотреть профиль Найти все сообщения от scuter
 
Регистрация: 14.03.2008
Сообщений: 169

ОК попробую по помятней.
есть такое скрипт
Ext.onReady(function(){
	var TreeNode = function(node)
	{
		node = tree.getSelectionModel().getSelectedNode();
		alert(node.text);
	}
	var tree = new Ext.tree.TreePanel({
		region:'west',
		split:true,
		tbar: TreeToolbar,
    	collapsible: true,
    	width:200,
    	minWidth: 150,
    	maxWidth: 350,
    	border: false,   	
		title: 'меню сайта',
		margins: '1 0 0 0',
		cmargins: '0 0 0 0',
		enableRename: true,
        autoScroll:true,
        animate:false,
        enableDD:true,
		rootVisible:false,
        containerScroll: true, 
        loader: new Ext.tree.TreeLoader({
			preloadChildren: true,
            dataUrl:this.TreeNodeUrl,
            clearOnLoad: false
        }),
        root: new Ext.tree.AsyncTreeNode({
	        text: 'меню сайта',
	        draggable:false,
	        id:'www'
        })
    });
});
var page = new (function(){
	this.TreeNode = function()
	{
		node = tree.getSelectionModel().getSelectedNode();
		alert(node.id);
	}
})();

мне надо заменить функцию TreeNode
которая находится в Ext.onReady
на функцию TreeNode которая находится в page
Ответить с цитированием
  #5 (permalink)  
Старый 16.03.2008, 14:58
Профессор
Отправить личное сообщение для Dmitry A. Soshnikov Посмотреть профиль Найти все сообщения от Dmitry A. Soshnikov
 
Регистрация: 25.02.2008
Сообщений: 707

Сообщение от scuter
мне надо заменить функцию TreeNode
которая находится в Ext.onReady
на функцию TreeNode которая находится в page
замените
Ответить с цитированием
  #6 (permalink)  
Старый 17.03.2008, 06:16
Аватар для scuter
Профессор
Отправить личное сообщение для scuter Посмотреть профиль Найти все сообщения от scuter
 
Регистрация: 14.03.2008
Сообщений: 169

большое спасибо.
но к сожалению проблема оказывается не в этом,
вот напимер функция
var TreePanetEdit = function(bottom)
    {
    	var node;
    	if((bottom == 'Add') || (bottom == 'AddChild'))
    	{
	    	if(isset(tree))
	    	{
		    	node = tree.getSelectionModel().getSelectedNode();
		    	if(bottom == 'Add')
		    	{
		    		dnode = node;
		    	}
		    	else
		    	{
		    		dnode = node.parentNode;
		    	}
		    	node = TreeNodeAdd(dnode);
		    	if(node.add)
				{
		    		node = new Ext.tree.TreeNode(node.add);
		    		dnode.appendChild(node);
				}
	    	}
    	}
    	else if(bottom == 'TreeNodeUp')
    	{
    		
    	}
    	else if(bottom == 'TreeNodeDown')
    	{
    		
    	}
    	else if(bottom == 'TreeNodeDelete')
    	{
    		
    	}
    	if(isset('node.error'))
    	{
    		if(isset('node.error.title') && isset('node.error.text'))
    		{
    			Ext.MessageBox.show({
					title: node.error.title,
					msg: node.error.text,
					buttons: Ext.MessageBox.OK,
					icon: 'error'
				});
    		}
    	}
    	else if(isset(node.msg))
    	{
    		if(node.msg.title && node.msg.text)
    		{
    			Ext.MessageBox.show({
					title: node.msg.title,
					msg: node.msg.text,
					buttons: Ext.MessageBox.OK,
					icon: 'info'
				});
    		}
    	}
    }

пробовал по разному и через функцию isset которая у вас в анологии php и просто if(node.error), но вот хоть ты тресни,а переменной node не существует и всё тут все броузеры боворят плевать нам на if не существует и всё тут.
Ответить с цитированием
  #7 (permalink)  
Старый 17.03.2008, 09:41
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

А с чего вы взяли, что в JavaScript есть функция isset?
Ответить с цитированием
  #8 (permalink)  
Старый 17.03.2008, 12:00
Профессор
Отправить личное сообщение для Dmitry A. Soshnikov Посмотреть профиль Найти все сообщения от Dmitry A. Soshnikov
 
Регистрация: 25.02.2008
Сообщений: 707

scuter, дружище! Небольшой совет: не нужно приводить лишний большой код, который неинтересен для анализа. Попробуй локализовать проблему. Переменная node у тебя локальная и определяется только при условии if((bottom == 'Add') || (bottom == 'AddChild')). Значит надо смотреть, почему button не равен ни одному из этих значений. Попробуй продебажить это, расставив alert'ы во всех вызовах.

scuter, функции isset(...), действительно не существует в JS. Однако, Kolyaj, я полагаю, что автор описал ее сам (что-то вроде: var isset = function(obj) { return typeof obj !== 'undefined' };).

Последний раз редактировалось Dmitry A. Soshnikov, 17.03.2008 в 12:39.
Ответить с цитированием
  #9 (permalink)  
Старый 17.03.2008, 16:38
Аватар для scuter
Профессор
Отправить личное сообщение для scuter Посмотреть профиль Найти все сообщения от scuter
 
Регистрация: 14.03.2008
Сообщений: 169

Цитата:
А с чего вы взяли, что в JavaScript есть функция isset?
Javascript для PHP функции: isset
извените я просто не могу найти проблему
создаю функцию,
а она запускается в момент её инициализации, то есть
пишу так
var TreePanetEdit = function(box)
{
    if(box)
    {
        alert(box);
    }
    else
    {
        alert('nexus');
    }
}

и функция запускается когда объявляется,
а когда используешь эту функцию она ничего не хочет делать,
например если сделать так,
TreePanetEdit('it is work');
может я её как то не так объявил?

Последний раз редактировалось scuter, 17.03.2008 в 20:37.
Ответить с цитированием
  #10 (permalink)  
Старый 17.03.2008, 16:46
Отправить личное сообщение для Андрей Параничев Посмотреть профиль Найти все сообщения от Андрей Параничев
 
Регистрация: 21.02.2008
Сообщений: 1,250

В последнем примере всё объявлено правильно. Может ты опять объявил её с инкапсуляцией и "вызовом при объявлении", как в первом примере? Т.е вот так:
var TreePanetEdit = new (function(box)
{
if(box)
{
alert(box);
}
else
{
alert('nexus');
}
})();


if(isset('node.error'))
{
    if(isset('node.error.title') && isset('node.error.text'))

И в этом месте, как я понимаю, не нужно ставить кавычки, так как проверяется по самому элементу, а не по его имени.

Последний раз редактировалось Андрей Параничев, 17.03.2008 в 17:02.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
проблема с обработкой DIV nerik AJAX и COMET 2 22.08.2008 17:40
Проблема с меню 856 Общие вопросы Javascript 3 28.07.2008 14:29
Проблема с маркером kostian02 Общие вопросы Javascript 0 23.06.2008 16:10
Проблема с русскими путями. Phoenix (X)HTML/CSS 0 23.10.2007 13:37
проблема с передачей русского текста в Prototype subaru Prototype & script.aculo.us 2 26.07.2007 16:56