#javascript #click #dom-events
#javascript #щелчок #dom-события
Вопрос:
Я пытаюсь связать два элемента на веб-странице, чтобы, когда я нажимаю на один, это также запускало щелчок на другом. Например, у меня есть данные, представленные как в таблице, так и в круговой диаграмме, и щелчок по диаграмме должен иметь тот же эффект, что и щелчок непосредственно по данным в таблице.
[Редактировать] Мне это нужно как универсальная утилита, поскольку я не обязательно знаю, какое действие вызовет исходный элемент.
Как я могу добиться этого в кроссбраузерном режиме на обычном JavaScript?
То, что я ищу, имеет некоторое сходство с методом jQuery click()
, за исключением того, что:
- Я не использую jQuery
- Мне не нужно запускать щелчок программно, это сделает пользователь
Он также похож на JavaScript click()
, но click()
не работает в кроссбраузерном режиме.
Комментарии:
1. вы хотите вызвать две функции с помощью одной кнопки?
2. Нет, наоборот: пусть вторая «кнопка» вызывает ту же функцию, что и первая «кнопка». Но когда я пишу свой код (плагин) Я заранее не знаю, какую функцию запустит первая кнопка.
Ответ №1:
Обновленный код. Это должно сработать. Когда вы нажимаете на второй элемент, вызываете событие click первого элемента и передаете первую кнопку как this
<div onclick="alert(this.getAttribute('id'));" id="b1" >Hi!!</div>
<div id="b2" >Hi!! 2</div>
С помощью этого кода:
document.getElementById("b2").onclick = function() {
document.getElementById("b1").onclick.call(document.getElementById("b1"));
};
Также в этой скрипке: http://jsfiddle.net/RVAMm/26
Комментарии:
1. Я не обязательно знаю commonFunction или контролирую его. Я попытался прояснить свой вопрос. Например, диаграмма может быть построена с использованием прогрессивного улучшения.
2. @Christophe итак, у вас в основном есть элемент 1, который переходит к какому-то внешнему событию щелчка (кто знает, чему), и вы хотите подключиться к нему при нажатии на элемент 2?
3. Да! И в идеале, «this» должно ссылаться на исходный элемент (как если бы пользователь непосредственно щелкнул по таблице).
Ответ №2:
Почему бы не использовать:
theElementYouWantToClick.onClick()