Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: jquery, привязка событий или что-то подобное.
 
 автор: alexander95   (26.11.2011 в 21:04)   письмо автору
 
 

<script type="text/javascript" src="src/jquery.js"/>
    <script type="text/javascript">
        $('#d').bind("click",function(){
            location.href('control.php?ymd='+<?=$_GET["ym"]?>+$(this).innerText);
        });
    </script>


Простейший, казалось бы, скрипт, но у меня с жКвери вражда давняя.
Собственно, при нажатии на любой элемент с id="d" переход не осуществляется. Что может быть тому причиной?

  Ответить  
 
 автор: cheops   (26.11.2011 в 21:06)   письмо автору
 
   для: alexander95   (26.11.2011 в 21:04)
 

Если перед location.href добавить alert() - он срабатывает?

  Ответить  
 
 автор: alexander95   (26.11.2011 в 21:10)   письмо автору
 
   для: cheops   (26.11.2011 в 21:06)
 

Не сработал.

  Ответить  
 
 автор: cheops   (26.11.2011 в 21:12)   письмо автору
 
   для: alexander95   (26.11.2011 в 21:10)
 

А у вас отладчик какой-нибудь есть под рукой - там ошибок нет? В каком браузере тестируете скрипт?

  Ответить  
 
 автор: alexander95   (26.11.2011 в 21:13)   письмо автору
 
   для: cheops   (26.11.2011 в 21:12)
 

FF линуксовый, его веб-консоль молчит. До этого одну ошибку находила, я уже исправил.

  Ответить  
 
 автор: АЯС   (26.11.2011 в 21:13)   письмо автору
 
   для: alexander95   (26.11.2011 в 21:04)
 

Назначать какую-либо функцию какому-либо элементу/элементам можно только после того, как этот элемент на странице появится. В чистом JS это решается функцией по onload окна, либо прописыванием скриптового блока после тела документа. В ЖиКвери вроде бы есть способ ready
-----

id вообще-то задумывался и используется как уникальный идентификатор.
Много (более одного) элементов с одинаковым id - таковое, конечно, может быть, но исключительно в качестве ошибки написавшего код. Поэтому, например, в методе getElementById оговаривается, что при наличии нескольких элементов с указанным id метод будет возвращать только первый встреченный.

  Ответить  
 
 автор: alexander95   (26.11.2011 в 21:15)   письмо автору
 
   для: АЯС   (26.11.2011 в 21:13)
 

Так тоже не работает:
$(document).ready(function(){
            $('td').bind("click",function(){
                alert("smth");
                location.href('control.php?ymd='+<?=$_GET["ym"]?>+$(this).innerText);
            });
        });

- - -
Точно. Точно.
Как же тогда быть с элементами, как это реализовать?

  Ответить  
 
 автор: АЯС   (26.11.2011 в 21:19)   письмо автору
 
   для: alexander95   (26.11.2011 в 21:15)
 

Ну, например, дать элементам разные id, но которые содержат одинаковое начало. Например, так:
<td class="day" id="durak1">25</td>
<td class="today" id="durak2">26</td>
<td class="holiday" id="durak3">27</td>

В функция, коя будет назначать обработчик события, поставить условием, что первые пять символов == 'durak'

  Ответить  
 
 автор: alexander95   (26.11.2011 в 21:29)   письмо автору
 
   для: АЯС   (26.11.2011 в 21:19)
 

Не работает даже так :(
<script type="text/javascript" src="src/jquery.js"/>
    <script type="text/javascript">
        $(document).ready(function(){
            $("td[id^='d']").bind("click",function(){
                alert("smth");
                location.href('control.php?ymd='+<?=$_GET["ym"]?>+$(this).innerText);
            });
        });
    </script>


И элементы d1, d2, d3, ..., dn

  Ответить  
 
 автор: alexander95   (26.11.2011 в 21:14)   письмо автору
 
   для: alexander95   (26.11.2011 в 21:04)
 

Теги типа таких:
<td class="day" id="d">25</td>
<td class="today" id="d">26</td>
<td class="holiday" id="d">27</td>

  Ответить  
 
 автор: alexander95   (26.11.2011 в 21:47)   письмо автору
 
   для: alexander95   (26.11.2011 в 21:14)
 

Ок, все как-то потихоньку решилось. Итог:
<script src="http://code.jquery.com/jquery-latest.js"></script>
    <script type="text/javascript">
        $(document).ready(function(){
            $("td[id^='d']").click(function(){
                alert("smth");
                    window.location='control.php?ymd='+<?=$ym?>+$(this).innerText;
            });
        });
    </script>

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования