РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
⊗pplwSpAcSt 31 of 102 menu
◀ ▶

Стоп всплытия в Livewire

Пусть внутри карточки поста есть своя кнопка. Клик по ней заодно нажимает и всю карточку: срабатывают оба обработчика, хотя человек целился только в кнопку.

Модификатор .stop у wire:click останавливает всплытие. Метод на кнопке выполняется, а родительский клик не получает событие.

Страница откроется по адресу /posts/nest. Давайте опишем компонент PostNest:

<?php namespace App\Livewire; use Livewire\Component; class PostNest extends Component { public $outer = ''; public $inner = ''; public function outer() { $this->outer = 'Outer'; } public function inner() { $this->inner = 'Inner'; } public function render() { return view('livewire.post-nest'); } } ?>

Давайте повесим клик на карточку и на кнопку со стопом всплытия:

<div wire:click="outer"> Post card <button wire:click.stop="inner"> Open </button> <div>{{ $outer }}</div> <div>{{ $inner }}</div> </div>

Давайте откроем страницу по адресу /posts/nest:

<?php Route::get('/posts/nest', function () { return view('posts-nest'); }); ?>

Давайте вставим компонент на страницу:

<x-layout> <livewire:post-nest /> </x-layout>

Создайте компонент EmployeeNest. Кнопка внутри карточки работника не задевает клик по самой карточке.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить