Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Обработать событие button и tr (https://javascript.ru/forum/events/35915-obrabotat-sobytie-button-i-tr.html)

Lansaid 26.02.2013 19:11

Обработать событие button и tr
 
Собственно вопрос в следующем есть кнопка внутри таблицы, на нее вешаю onclick,после обработки onclicka хочу,повешать onclick на данную строку таблицы(редактировать значение),НО происходит всплывание и при нажатии на кнопку в chrome и firefox обрабатывается клик по строке.чем лечится?код ниже
td2.innerHTML = '<input type="button" value="Сохранить"  name ="saveButti" onclick="checkResult(this)"> //ячейка таблицы с кнопкой и onclickом на ней

function checkResult(but1) {
    var childTD2 = but1.parentNode;
    var trParent=childTD2.parentNode;
    var childTD1 = trParent.firstChild;
    var childTD1Form = childTD1.firstChild;
    var number = childTD1Form.value;
  if (isNaN(number) ) {
  alert ('Вы ввели не число. Исправьте, пожалуйста!');
  childTD1Form.select();
} else if (number=="") {
   alert ('Вы не вввели число. Исправьте, пожалуйста!');
 childTD1Form.select();	
}
else {
 saveResult(childTD1,childTD2,childTD1Form,trParent,but1);
  } //обработчик клика по кнопке

function saveResult(childTD1, childTD2, childTD1Form, trParent,but1) {
    childTD1.innerHTML=childTD1Form.value;
    childTD2.innerHTML='<button>Удалить</button>';
    Сalculate( );
// but1.stopPropagation; //без этого все работает как надо в IE,Но Chrome,Firefox обрабатывают onclick сразу и по строке,получается значение ввели и тутже редактируем - непорядок
    trParent.setAttribute("onclick", "correctNumber(this)"); //тут вешаю onclick на строку таблицы
   
var childTD1, childTD2, childTD1Form= null;
}

Deff 26.02.2013 19:19

Минимальный HTML приведите

Lansaid 26.02.2013 19:29

Вложений: 1
с минимальным html сложности,я приложил архив,там целый код

рони 26.02.2013 19:33

Lansaid,

function checkResult(but1) {
а сюда отмену всплытия пробовали ставить?

04 var childTD2 = but1.parentNode;


05 var trParent=childTD2.parentNode;

Lansaid 26.02.2013 20:36

Пробовал,не помогает кнопка срабатывает и открывается обработчик на TRб может есть другой способ реализовать?

vadim5june 26.02.2013 20:42

А остановка всплытия не помогает?
http://javascript.ru/tutorial/events...ovka-vsplytiya

Deff 26.02.2013 22:13

Цитата:

Сообщение от Lansaid
с минимальным html сложности,я приложил архив,там целый код

Для td и кнопки внутри

Lansaid 26.02.2013 22:27

помогает,но я хочу чтобы Onclick на строке работал,а так сделать не могу

Deff 26.02.2013 22:33

Цитата:

Сообщение от Lansaid
помогает,но я хочу чтобы Onclick на строке работал,а так сделать не могу

Какие события фиксирует оnklick на tr ?

vadim5june 26.02.2013 22:39

Цитата:

Сообщение от Lansaid (Сообщение 237433)
помогает,но я хочу чтобы Onclick на строке работал,а так сделать не могу

если так написать то разве не будет как Вы хотели?
function checkResult(but1,event) {
event = event || window.event 
    if (event.stopPropagation) {
         event.stopPropagation()
    } else {
       event.cancelBubble = true
    };
....

а в onclick event переайте
onclick="checkResult(this,event)"


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