Передача переменной в ф-цию
День добрый. я нуб в яваскрипте , аяксе и квери.
Вступление Пхп генерит страницу с 100 дивов(матрица 10х10), каждый див имеет id=$x.'_'.$y, и value=$res (может быть 1 или 0, в зависимости от наличия в диве картинки). Проблемма При нажатии на див, в jquery должно передаваться значение value, и x, y. Картинка соответственно должна меняется на противоположную от value, а значения измененного value, x,y должны передаваться на сервер для апдейта БД, откуда они вытягиваются при генерации страницы. Вопрос Как в jquery передать значения value, и x, y? Пример пожалуйста) |
Цитата:
Цитата:
Вообще я бы для таких целей все же использовал таблицу а не 100 дивов. В самой таблице уже легко определить строку/столбец, а не анализировать id. Считывания значений атрибутов в jQuery не проблема : $(this).attr('xxx'); // вернет значение атрибута xxx. |
warider, вам надо почитать про each (возможно), onclick, attr и val (хотя val вряд ли, у дива нет такого атрибута). Даже в родной документации к jQuery все подробно описано, изучайте и экспериментируйте. Если в ходе эксперимента возникнут вопросы - возвращайтесь сюда с куском кода, будем вместе разбираться.
|
пример:
1. генерится тдшка <td style:"bla bla" x='<?echo $x?>' y= '<? echo $y?>'> <img scr="bla-bla" value='<?echo matrix[$y][$x]?>' onclick="change('<?echo $x?>', '<?echo $y?>', '<?echo matrix[$y][$x]?>')"> </td> 2. jquery $(function change(x,y,res){ if($(res).val()==1){ $(res).val()=0; } if($(res).val()==0){ $(res).val()=1; } } корректен ли этот синтаксис? если нет - поправьте пжлст!)) |
Вы бы хоть для начала разобрались, как в jQuery устанавливать значения.
$(res).val()=0; Это что такое? Вас кто учил так делать? И что вообще за $(function change(x,y,res){ Где вы видели такую форму и зачем это было написано? Классическое определение функции уже не в моде? В общем, читать доки, пока не поймете основы. Сейчас вы их не понимаете ну просто никак. А без понимания вы далеко не уедете. |
Цитата:
|
Цитата:
|
Имелось в виду, что именно ТС хотел сделать этой конструкцией. Я как-то не видел, чтобы обработчики событий пихались в $, ведь это совершенно лишнее, особенно в данном случае.
Цитата:
|
Цитата:
(function f1() {}); alert(f1); FunctionExpression не видны по имени. |
Я знаю, что в нормальных браузерах NFE не попадает в текущий контекст, я же отвечал на вопрос:
Цитата:
|
Так в результате пример warider работать не будет.
|
//Описываем change
var change = function(x, y, res){ //меняем значение if(res == 1){ res = 0; } else { res = 1; } //отправляем данные $.post('route', { x : x ,y : y ,res : res }, function(data){ //проверяем результат с сервера data //вызываем соответствующий callback }); } // в ж... onclick= bla bla bla // Делаем так... $(document).ready(function(){ var td_list = $('td', '#cont'); // Если к примеру <table id="cont"><tr>td></td></tr></table> for(var i = 0 i < td_list.length; i++){ $('img', td_list[i]).bind('click', function(){ change($(this).parent().attr('x'), $(this).parent().attr('y'), $(this).attr('value')); }); } }); |
Всем спасибо! разобрался сам)
|
Часовой пояс GMT +3, время: 11:23. |