Метод click () (javascript) не работает в FF - PullRequest
0 голосов
/ 18 марта 2010

Следующий код генерирует два оповещения, как и ожидалось в IE, но не в Firefox. Пожалуйста, помогите.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
 <HEAD>

<SCRIPT LANGUAGE="JavaScript">
<!--
    function myFunction(){
        alert('myfunc');
        document.getElementById('mylabel').click();
    }
//-->
</SCRIPT>

 </HEAD>

 <BODY>
  <p id='mylabel' onclick="alert('you reached');"></p>


  <input type='button' value="Click me" onclick='myFunction();'/>
 </BODY>
</HTML>

Спасибо

Ответы [ 3 ]

4 голосов
/ 18 марта 2010

Firefox имеет функцию click () только для таких элементов формы, как кнопки. Тем не менее, вы можете вызвать функцию onClick напрямую; Вы можете изменить строку на

document.getElementById('mylabel').onclick();

Это работает в Firefox или IE (но учтите, что для этого требуется, чтобы функция действительно существовала, что, как вы знаете, в этом примере).

Также обратите внимание, что вы на самом деле не имитируете щелчок по этому элементу (так, например, если бы были другие действия, которые мог бы выполнить такой щелчок, например, действовать как нажатие на контейнер, они не бывает). Вы просто получаете функцию, которая запускается одним щелчком мыши, и запускаете ее напрямую. Так что это не решение для всех ситуаций, когда вам нужно смоделировать щелчок.

3 голосов
/ 18 марта 2010

Нет метода click для элементов. Вы используете какую-либо библиотеку?

Обычно вам нужно сделать что-то вроде element.fireEvent('click') (прототип, mootools)

или element.click() (jquery)

ОБНОВЛЕНИЕ- Подобный вопрос: Как программно щелкнуть элемент в JavaScript?

Похоже, уродливое и хрупкое решение, если бы я был вами, я бы просто включил jQuery и позволил бы этому обрабатывать все особенности браузера.

0 голосов
/ 18 марта 2010

Поскольку тег

не имеет метода click.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...