Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Jquery - диалог / 7 сообщений из 7, страница 1 из 1
25.02.2009, 06:15
    #35835605
БлинКомом
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Jquery - диалог
Прошу помощи в тривиальной собственно задаче с jquery:
при нажатии на кнопку открывается модальное окно, куда загружаются данные Ajax запроса.

Сделал что-то типа:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
СТРАНИЧКА

<table>
<tr>
<td id=s_conts>	<img src="./img/p_contacts.gif"></td>
</tr>
</table>
<div id=dialog></div>

JS-script

$(document).ready(function(){

	$("#s_conts").click(function(){
		var request = CreateRequest('URL.php?function=load_cont_list');
    		if (CheckRequest(request)){
			var xmlparam = request.responseXML.documentElement.getElementsByTagName("event");
			for (i =  0 ; i <= xmlparam.length- 1 ; i++){
			    var newItem = document.createElement("P");
	    		    newItem.appendChild(document.createTextNode(xmlparam[i].getElementsByTagName("CID")[ 0 ].firstChild.nodeValue+' '+xmlparam[i].getElementsByTagName("FIO")[ 0 ].firstChild.nodeValue));
			    document.getElementById("dialog").appendChild(newItem);	    		    
			}
   		}		
                $("#dialog").dialog({
			bgiframe: true,
			height:  600 ,
			width:  800 ,
			modal: true
	});
        });

});    


Не могу заставить это работать в Chrome. В остальных браузерах вроде работает.


P.S. В JS новичок абсолютно - комментарии неточностей в коде или предложение альтернативных вариантов приветствуются
...
Рейтинг: 0 / 0
26.02.2009, 12:54
    #35839021
БлинКомом
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Jquery - диалог
Вопрос снимается - поместил все в табличку, отображается теперь везде.

Но появился другой, помогите, плиз? :)

Вывожу данные в диалог в виде таблицы.
Строка таблицы состоит из двух ячеек - в одной содержится checkbox, при клике на вторую вызывается еще один диалог.

Как бы мне средствами jquery (или просто Javascript) в этом новом диалоге получить значение value чекбокса из той же строки, по клику на которую диалог открылся?

Что-то мои эксперименты с parent() и children() никакого результата не дают :(

Страничка:
Код: plaintext
1.
2.
3.
4.
<img src="./img/p_contacts.gif" id=s_conts>

<div id=dialog></div>
<div id=subdialog></div>

JS
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
$(document).ready(function(){

	$('#td_cont').live('click', function(){

// Сюда нужен код, запрашивающий значение value 

        $("#subdialog").dialog({
		bgiframe: true,
		height:  450 ,
		width:  600 ,
		modal: true
	    });
	});

	$("#s_conts").click(function(){
		var oneChild;
		var mainObj = document.getElementById("dialog");
		while (mainObj.childNodes.length >  0 ) {
		    oneChild = mainObj.lastChild;
		    mainObj.removeChild(oneChild);
		}
	        var newTable = document.createElement('table');
		var tbody = document.createElement('tbody');
		
		newTable.appendChild(tbody);		
		
		var request = CreateRequest('/syncml/syncml.php?function=syncml_cont_list&sortby=1&sortto=0&page=2');
		
    		if (CheckRequest(request)){
			var xmlparam = request.responseXML.documentElement.getElementsByTagName("event");
			for (i =  0 ; i <= xmlparam.length- 1 ; i++){
			    var cid = xmlparam[i].getElementsByTagName("CID")[ 0 ].firstChild.nodeValue;
			    var newItem = document.createElement("tr");
			    newItem.id = 'item_contact';

			    var newTd = document.createElement('td');
			    var newChk = document.createElement('input');
			    newChk.type = 'checkbox';
			    newChk.name = 'c_id';
			    newChk.value = cid;
			    newTd.appendChild(newChk);
			    newItem.appendChild(newTd);

			    var newTd = document.createElement('td');
			    newTd.innerHTML = xmlparam[i].getElementsByTagName("FIO")[ 0 ].firstChild.nodeValue;
			    newTd.id='td_cont';
			    newItem.appendChild(newTd);

			    tbody.appendChild(newItem);
			}
   		}
   		mainObj.appendChild(newTable);   		
                $("#dialog").dialog({
			bgiframe: true,
			height:  600 ,
			width:  800 ,
			modal: true
	});
        });

});    


...
Рейтинг: 0 / 0
26.02.2009, 18:38
    #35840345
Frenzy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Jquery - диалог
если у вас диалоги из жквери, то никакие пэренты-чилдрены вам не нужны - у вас всё в одном окне. получить значение чекбокса можно по его id или имени, например:

Код: plaintext
$('#ид_чекбокса').val()

_______________________________________
2pro4U
...
Рейтинг: 0 / 0
27.02.2009, 06:50
    #35841026
БлинКомом
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Jquery - диалог
Так я не знаю id чекбокса.
Знаю только, что он в той же строке таблицы.
...
Рейтинг: 0 / 0
27.02.2009, 15:14
    #35842434
Frenzy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Jquery - диалог
БлинКомомТак я не знаю id чекбокса.
Знаю только, что он в той же строке таблицы.

по-хорошему вам нужно формировать ид чекбокса. такой чтобы можно было его узнать на основании ида тд на который кликают. а то иначе изменится разметка и придётся скрипты переписывать.

но если очень хочется, то добраться до чекбокса можно примерно так:

Код: plaintext
1.
2.
3.
4.
...
var checkbox = $(this).prev().children().get( 0 );
alert($(checkbox).val());
alert($(checkbox).attr('checked'));
...

_______________________________________
2pro4U
...
Рейтинг: 0 / 0
04.03.2009, 08:18
    #35849780
БлинКомом
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Jquery - диалог
Пасибо.
Еще один небольшой вопрос по диалогам.

Окно диалога открывается всего один раз - после закрытия, второй раз его можно открыть только после перезагрузки страницы целиком.
Я так понимаю, что проблема в том, что DOM при закрытии диалога не чистится, как бы это преодолеть?
...
Рейтинг: 0 / 0
04.03.2009, 13:10
    #35850629
БлинКомом
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Jquery - диалог
Вставил перед открытием диалога строку

$("#dialog").dialog("destroy");

В принципе помогло, не знаю, насколько это верный подход только :)
...
Рейтинг: 0 / 0
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Jquery - диалог / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]