Показать сообщение отдельно
  #3 (permalink)  
Старый 31.07.2011, 11:25
Интересующийся
Отправить личное сообщение для c124578 Посмотреть профиль Найти все сообщения от c124578
 
Регистрация: 09.07.2011
Сообщений: 21

Есть такая кнопка, созданная JS на стороне клиента:
<button class="DeleteItem"></button>

к ней прикручен обработчик DeleteCookie:

var c=document.createElement("button");
c.className="DeleteItem";
conteiner.appendChild(c);
c.onclick=DeleteCookie;


вот функция:

function DeleteCookie(e) {
   if (!e) var e = window.event;
   e.cancelBubble = true;
   if (e.stopPropagation) e.stopPropagation(); // просто подавляем всплывание
   var x=e.target||e.srcElement; //взяли элемент, в котором произошло событие
   x=x.parentNode; // контейнер, в котором запись
   var id=x.innerHTML.match(/в базе[^\d]{1,5}([0-9]+)<\//); // ее ID в базе
   setcookie("id"+id[1], 0, -1000); // вычеркиваем из блокнота
   x.removeChild(x.lastChild); // удаляем эту самую кнопку
}


Все работает, как надо. Это для удаления выбранной записи, предназначенной для блокнота.
PHP скрипт, выдающий записи, при повторном, например, посещении страницы, на основании кук рисует такую кнопку:
<button type="button" onClick=DeleteCookie(click) class="DeleteItem"></button>

Она работает неправильно: x неопределен, кнопка не удаляется.
Firebug для JSной кнопки показывает, onClick -> DeleteCookie(e), а для PHPной onclick -> onclick(event)
attributes -> [class="DeleteItem", onclick="DeleteCookie", type="button"]
Я не знаю, почему разные определения получаются, кто знает расскажите, как PHP кнопку сделать идентичной JS кнопке.
Ответить с цитированием