Improving the efficiency of classes
This commit is contained in:
parent
02337c2d74
commit
f8d0b13c7d
11
src/dom.rs
11
src/dom.rs
|
@ -592,9 +592,12 @@ impl<A> DomBuilder<A> where A: AsRef<Element> {
|
|||
|
||||
#[inline]
|
||||
pub fn class<B>(self, name: B) -> Self where B: MultiStr {
|
||||
let list = self.element.as_ref().class_list();
|
||||
|
||||
name.each(|name| {
|
||||
dom_operations::add_class(self.element.as_ref(), name);
|
||||
dom_operations::add_class(&list, name);
|
||||
});
|
||||
|
||||
self
|
||||
}
|
||||
|
||||
|
@ -690,7 +693,7 @@ impl<A> DomBuilder<A> where A: AsRef<Element> {
|
|||
where B: MultiStr + 'static,
|
||||
C: Signal<Item = bool> + 'static {
|
||||
|
||||
let element = self.element.as_ref().clone();
|
||||
let list = self.element.as_ref().class_list();
|
||||
|
||||
let mut is_set = false;
|
||||
|
||||
|
@ -700,7 +703,7 @@ impl<A> DomBuilder<A> where A: AsRef<Element> {
|
|||
is_set = true;
|
||||
|
||||
name.each(|name| {
|
||||
dom_operations::add_class(&element, name);
|
||||
dom_operations::add_class(&list, name);
|
||||
});
|
||||
}
|
||||
|
||||
|
@ -709,7 +712,7 @@ impl<A> DomBuilder<A> where A: AsRef<Element> {
|
|||
is_set = false;
|
||||
|
||||
name.each(|name| {
|
||||
dom_operations::remove_class(&element, name);
|
||||
dom_operations::remove_class(&list, name);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
use wasm_bindgen::UnwrapThrowExt;
|
||||
use web_sys::{Node, HtmlElement, Element};
|
||||
use web_sys::{Node, HtmlElement, Element, DomTokenList};
|
||||
|
||||
|
||||
#[inline]
|
||||
|
@ -47,13 +47,13 @@ pub(crate) fn set_focused(element: &HtmlElement, focused: bool) {
|
|||
}
|
||||
|
||||
#[inline]
|
||||
pub(crate) fn add_class(element: &Element, name: &str) {
|
||||
element.class_list().add_1(name).unwrap_throw();
|
||||
pub(crate) fn add_class(list: &DomTokenList, name: &str) {
|
||||
list.add_1(name).unwrap_throw();
|
||||
}
|
||||
|
||||
#[inline]
|
||||
pub(crate) fn remove_class(element: &Element, name: &str) {
|
||||
element.class_list().remove_1(name).unwrap_throw();
|
||||
pub(crate) fn remove_class(list: &DomTokenList, name: &str) {
|
||||
list.remove_1(name).unwrap_throw();
|
||||
}
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue