Improving the efficiency of classes

This commit is contained in:
Pauan 2019-06-16 02:13:53 +02:00
parent 02337c2d74
commit f8d0b13c7d
2 changed files with 12 additions and 9 deletions

View File

@ -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);
});
}
}

View File

@ -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();
}