fix event bubbling within a single template

This commit is contained in:
Evan Almloff committed 2023-03-12 14:47:30 -05:00
1 parent eee6cbabb2
commit 4847789a83
2 files changed
+4 -4

No files matched your search

+3 -3
View File
@@ -175,10 +175,10 @@ impl VirtualDom {
}
impl ElementPath {
pub(crate) fn is_ascendant(&self, big: &&[u8]) -> bool {
pub(crate) fn is_decendant(&self, small: &&[u8]) -> bool {
match *self {
ElementPath::Deep(small) => small.len() <= big.len() && small == &big[..small.len()],
ElementPath::Root(r) => big.len() == 1 && big[0] == r as u8,
ElementPath::Deep(big) => small.len() <= big.len() && *small == &big[..small.len()],
ElementPath::Root(r) => small.len() == 1 && small[0] == r as u8,
}
}
}
+1 -1
View File
@@ -396,7 +396,7 @@ impl VirtualDom {
// Remove the "on" prefix if it exists, TODO, we should remove this and settle on one
if attr.name.trim_start_matches("on") == name
&& target_path.is_ascendant(&this_path)
&& target_path.is_decendant(&this_path)
{
listeners.push(&attr.value);