01
Дек
2016

отключение onclick родителя при нажатии на дочерний элемент

Здравствуйте! Есть код:

<tr name="<?=$arr[$i]['index']?>" onclick="location.href='SMSManager1.php?do=full&index=<?=$i?>'">
    <td><?=$arr[$i]['index']?></td>
    <td><?=$arr[$i]['source']?></td>
    <td><?=$arr[$i]['destination']?></td>
    <td><?=date('d.m.Y H:i:s', $timeToSend)?></td>
    <td><button type="button" class="btn btn-danger btn-xs active" onclick="StopSend(<?=$arr[$i]['index']?>, 1); event.cancelBubble=true;">Stop</button>
    <button type="button" class="btn btn-primary btn-xs active" data-toggle="modal" data-target="#main-modal" onclick="EditSend(this.getAttribute('data-source'), <?= $arr[$i]['index'] ?>); event.cancelBubble=true;" data-source='<?= json_encode($arr, JSON_HEX_QUOT); ?>'>Edit</button>
    <?
    if($arr[$i]['status'] == 1)
    {
    ?>
        <button type="button" class="btn btn-warning btn-xs active" onclick="PauseSend(<?=$arr[$i]['index']?>, 2); event.cancelBubble=true;">Pause</button></td>
    <?
    }
    else if($arr[$i]['status'] == 2)
    {
    ?>
        <button type="button" class="btn btn-success btn-xs active" onclick="PauseSend(<?=$arr[$i]['index']?>, 1); event.cancelBubble=true;">Start</button></td>
    <?
    }
    ?>
</tr>

при нажатии на одну из кнопок вызывается onclick по строке в таблице. для решения данной проблемы использовал event.cancelBubble=true;. Для кнопок 'Start', 'Pause', 'Stop' все прекрасно работает и onclick родителя не срабатывает, а вот для кнопки 'EditSend' срабатывает onclick родительского элемента.

При нажатии на кнопку 'Edit' выскакивает модальное окно. кнопка передает php массив в js функцию, которая обрабатывает его и заносит данные из массива в <input>ы модального окна(так должно быть). но получается что при нажатии на кнопку выскакивает модальное окно и страница сразу обновляется, т.к. срабатывает обработчик родительского элемента...

пробовал сделать передачу массива через jquery

var EditBtn = document.getElementById("EditBtn");
EditBtn.addEventListener("click", function(e){
$.ajax({
type: "POST",
url: "functions.php",
data: {'function':'edit', 'index':ind},
success: function(f)
{
    alert(f);
    e.stopPropagation();
    //EditSend2(f);
}
});
e.stopPropagation();
});

безрезультатно

Источник: https://ru.stackoverflow.com/questions/598010/%D0%BE%D1%82%D0%BA%D0%BB%D1%8E%D1%87%D0%B5%D0%BD%D0%B8%D0%B5-onclick-%D1%80%D0%BE%D0%B4%D0%B8%D1%82%D0%B5%D0%BB%D1%8F-%D0%BF%D1%80%D0%B8-%D0%BD%D0%B0%D0%B6%D0%B0%D1%82%D0%B8%D0%B8-%D0%BD%D0%B0-%D0%B4%D0%BE%D1%87%D0%B5%D1%80%D0%BD%D0%B8%D0%B9-%D1%8D%D0%BB%D0%B5%D0%BC%D0%B5%D0%BD%D1%82

Share

Тебе может это понравится...