Удаленный щелчок JavaScript

#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()