Я пытаюсь запустить событие программно. Моя проблема в том, что у меня есть два SVG на двух DIV, и я хочу иметь возможность изменить границу DIV, на которую я нажал. Для этого я подумал передать DIV внутри своих классов, а затем вызвать щелчок по нему, как только я нажму на что-нибудь. (если есть лучший способ, пожалуйста, скажите мне)
У меня есть следующий код:
div = querySelector(divName);
svgElement = new svg.SvgSvgElement();
div.append(svgElement);
div.onClick.listen(_setBorders(1));
позже я передаю svgElement другому классу
ell.show(svgElement);
где шоу
show(svg.SvgElement element) {
if (element.parent is DivElement){
_parentDiv= element.parent as DivElement;
element.children.add(_group);
}
}
_parentDiv — это, конечно, DivElement, который я использую для внутреннего onClick().
_onClick(MouseEvent e) {
window.console.info("onClick Ell");
_parentDiv.click();
}
Я ожидаю увидеть _setBorders(1); Я определил с основным div, но это не работает. Странно то, что когда я проверяю отладчик, установленный на _parentDiv.click(), я вижу, что _parentDiv правильно установил событие. Я полагаю, что click() работает не так, как я ожидал. Есть идеи?
div.onClick.listen((_) => _setBorders(1));
? Если нет, не могли бы вы вставить метод_setBorders
? - person Alexandre Ardhuin   schedule 05.02.2014listen
принимает функцию в качестве параметра. Вы не вставляете содержимое своей функции_setBorders
, но я ожидаю от ее имени, что вызов_setBorders(1)
возвращает не функцию, а скорееvoid
илиnull
илиnothing
. Если вы хотите, чтобы_setBorders(1)
вызывалось по событиям щелчка, вы должны использоватьdiv.onClick.listen((_) => _setBorders(1))
. - person Alexandre Ardhuin   schedule 05.02.2014