Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   помогите. не работает onclick (https://javascript.ru/forum/dom-window/13319-pomogite-ne-rabotaet-onclick.html)

m1st_kh 25.11.2010 22:39

помогите. не работает onclick
 
Есть функции, которые реализуют добавление элемента в список, из которого потом строится дерево. Принимает узел с информацией, и атрибут элемента списка который ею заполняется. и я хочу чтобы при нажатии на этот элемент списка вызывалась функция прорисовки столбца в таблице. Хочется реализовать именно через html onlick. помогите.)
function addToTree (node, atr) {
	$(atr).append("<li onClick=drawTable('"+node+"')> <a href='#'>"+$(node+">span[property*=title]").text()+" </a> </li>");
}
		
function drawTable(node) {
	$("#table").append("<tr>");
	$(node).children().each (function (index, domEle) {
		$("#table").append("<td>"+$(domEle).text()+"</td>");
	});
	$("#table").append("</tr>");
}

monolithed 25.11.2010 23:22

Как пример:
<script src="http://code.jquery.com/jquery.min.js" type="text/javascript"></script>
<script type="text/javascript">
$(function(){
    $('body').each(function(){
        var array = [0, 1, 2, 3], i = array.length;
        $(this).append('<a href="#">1</a>').one('click', function(){
            $(this).append('<table><tr/></table>');
            while(i--){
                $('table tr').append('<td style="border: 1px solid;">'+array[i]+'</td>');
            }
        });
    });
});
</script>

m1st_kh 25.11.2010 23:49

Спасибо за ответ, но это не то что нужно. У меня просто уже есть список, и заготовок таблицы. И мне просто нужно чтобы при нажатии на элемент в списке строилась табличка, исходя из данных по которым строится мой элемент списка. и я хочу использовать онклин, а не Jquery, чтобы в элементе списка уже было записано, откуда брать информацию для таблицы. вот сдесь это
function addToTree (node, atr) {
$(atr).append("<li onClick=drawTable('"+node+"')> ...

m1st_kh 25.11.2010 23:55

причем эти функции почемуто не работают только с онкликом. Если их просто прописать в <script> .. </script> , то все в порядке

monolithed 26.11.2010 00:05

Цитата:

Сообщение от m1st_kh
И мне просто нужно чтобы при нажатии на элемент в списке строилась табличка, исходя из данных по которым строится мой элемент списка

А разве мой пример не выполняет это?
//При клике на элемент создается таблица, затем в нее добавляются элементы TD, количество которых равно элементам массива, значения которых и добавляются в TD.

Цитата:

Сообщение от m1st_kh
и я хочу использовать онклин, а не Jquery

Что вам мешает?

Цитата:

Сообщение от m1st_kh
чтобы в элементе списка уже было записано, откуда брать информацию для таблицы

Для расширения табличных данных используюся методы:

insertRow()/deleteRow(), insertCell()/deleteCell, cloneNode(), moveRow()


Цитата:

Сообщение от m1st_kh
function addToTree (node, atr) {
$(atr).append("<li onClick=drawTable('"+node+"')> ...

Не следует так делать, я наглядно вам показал как нужно

Цитата:

Сообщение от m1st_kh
причем эти функции почемуто не работают только с онкликом. Если их просто прописать в <script> .. </script> , то все в порядке

и не должны

m1st_kh 26.11.2010 00:14

Цитата:

Сообщение от monolithed (Сообщение 80775)
и не должны

Не могли бы объяснить почему? Или линк дать?

monolithed 26.11.2010 07:44

Цитата:

Сообщение от m1st_kh
Не могли бы объяснить почему

Потому что обработчик события - не атрибут

Kolyaj 26.11.2010 09:45

Цитата:

Сообщение от m1st_kh
$(atr).append("<li onClick=drawTable('"+node+"')> <a href='#'>"+$(node+">span[property*=title]").text()+" </a> </li>");

Посмотрите какая строчка добавляется на самом деле, поймёте в чём ошибка.


Часовой пояс GMT +3, время: 09:02.