Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > JavaScript, Ajax
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.09.2013, 23:09   #1
alextrof94
Форумчанин
 
Регистрация: 16.03.2013
Сообщений: 599
По умолчанию AJAX. Перестают отрабатывать нажатия на кнопки, после динамической перезагрузки этих кнопок.

index.php
Код:
	<div id='gmenu'>
		<?php include('/pages/gmenu.php') ?> /*стандартная загрузка меню, не получается передать параметр =( */
	</div>
    <script>     
	$(document).ready(function(){
            $('#gmenu .item1').click(function(){  
                $.ajax({  
                    url: "/pages/page1.php",
                    cache: false,  
                    success: function(html){  
                        $("#content").html(html);  
                    }
                }); 
                $.ajax({   /*динамическая перезагрузка меню с параметром 1*/
                    url: "/pages/gmenu.php",
		    data: "id=1",
                    cache: false,  
                    success: function(html){  
                        $("#gmenu").html(html);  
                    }
                }); 
            });
	    $('#gmenu .item2').click(function(){  
                $.ajax({  
                    url: "/pages/page2.php",
                    cache: false,  
                    success: function(html){  
                        $("#content").html(html);  
                    }
		});
                $.ajax({    /*динамическая перезагрузка меню с параметром 2*/
                    url: "/pages/gmenu.php",
		    data: "id=2",
                    cache: false,  
                    success: function(html){  
                        $("#gmenu").html(html);  
                    } 
                });
            });    
        });  
    </script>
gmenu.php
Код:
<div id='gmenu' class='items'>
			<div id='gmenu' class='item1'>
<?php if ($_REQUEST['id']=='1'){echo '<span>выделено 1</span>';}else{echo 'не выделено 1';} ?>
			</div>
			<div id='gmenu' class='item2'>
<?php if ($_REQUEST['id']=='2'){echo '<span>выделено 2</span>';}else{echo 'не выделено 2';} ?>
			</div>
		</div>
alextrof94$gmail.com
alextrof94 вне форума Ответить с цитированием
Старый 02.09.2013, 23:47   #2
ADSoft
Старожил
 
Регистрация: 25.02.2007
Сообщений: 4,150
По умолчанию

после перезагрузки аяксом - нужно заново переинициализировать меню
ADSoft вне форума Ответить с цитированием
Старый 03.09.2013, 00:27   #3
alextrof94
Форумчанин
 
Регистрация: 16.03.2013
Сообщений: 599
По умолчанию

Цитата:
Сообщение от ADSoft Посмотреть сообщение
после перезагрузки аяксом - нужно заново переинициализировать меню
как сие действие выполнить? Погуглить - погуглил, но нихрена не понял...
UPD: гы, еще погуглил, нарвался на: http://programmersforum.ru/showthread.php?t=149149 . Кстати, привет из Казани =)
alextrof94$gmail.com

Последний раз редактировалось alextrof94; 03.09.2013 в 01:40.
alextrof94 вне форума Ответить с цитированием
Старый 03.09.2013, 03:27   #4
alextrof94
Форумчанин
 
Регистрация: 16.03.2013
Сообщений: 599
По умолчанию Немного переписал функции обновления контента и меню

Код:
	function ClickGmenu(num){
		if (num==1) {
			$.ajax({  
				url: "/pages/trorel_launcher.php",
                		cache: false,  
                		success: function(html){  
                			$("#content").html(html);  
                    		}
			});
		}
		if (num==2) {
			$.ajax({  
				url: "/pages/about_me.php",
                		cache: false,  
                		success: function(html){  
                			$("#content").html(html);  
                    		}
			});
		}
                $.ajax({
                	url: "/pages/gmenu.php",
			data: "id="+num,
                	cache: false,  
                	success: function(html){  
				$("#gmenu").html(html);
				/*тут должна быть ре-иницициализация, но я по прежнему не знаю как ее делать*/
                	} 
                });
	};    
	
	$(document).ready(function(){
            $('#gmenu .item1').click( function(){ ClickGmenu( 1 ) } );
            $('#gmenu .item2').click( function(){ ClickGmenu( 2 ) } );

        });
Работает так же, только теперь ре-инициализация нужна только в одном месте.
UPD: не нужна там никакая реинициализация, смотри ответ ниже.
alextrof94$gmail.com

Последний раз редактировалось alextrof94; 03.09.2013 в 04:40.
alextrof94 вне форума Ответить с цитированием
Старый 03.09.2013, 04:39   #5
alextrof94
Форумчанин
 
Регистрация: 16.03.2013
Сообщений: 599
По умолчанию

Гребанных 6 часов я убил, чтобы узнать всего 1 слово и вставить его куда нужно...
Код:
	$(document).ready(function(){
            $('#gmenu .item1').click( function(){ ClickGmenu( 1 ) } );
            $('#gmenu .item2').click( function(){ ClickGmenu( 2 ) } );
заменить на
Код:
	$(document).ready(function(){
            $('#gmenu .item1').live('click', function(){ ClickGmenu( 1 ) } );
            $('#gmenu .item2').live('click', function(){ ClickGmenu( 2 ) } );
ведь самое обидное, что в самом начале я экспериментировал с биндами и лайвами.
Да поможет всем остальным Антон Шевчук и его jQuery для начинающих.
alextrof94$gmail.com
alextrof94 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вывод в txt, после нажатия кнопок DBNavigator Critically Общие вопросы Delphi 9 17.08.2012 14:02
действия после нажатия кнопки, select ubun JavaScript, Ajax 4 04.01.2012 00:45
Обработка нажатия динамической кнопки Mr_freeman PHP 10 28.11.2011 23:45
после ajax загрузки текста - в нем JQuery плагины перестают работать ADSoft JavaScript, Ajax 4 11.05.2011 14:12
Как сделать, чтобы после нажатия кнопки выводилось нужное мне окно? phantasmagoria Помощь студентам 5 28.04.2011 23:43