Javascript onClick не работает должным образом - PullRequest
1 голос
/ 24 августа 2011

У меня есть одна (для меня) странная проблема. У меня есть поп под этим открытым URL. мне нужно сделать, когда пользователь нажимает на какой-то flashplayer (который находится в div) Я положил код JavaScript

<script type="text/javascript">
    $("player").click(myfunc());
</script>


<script type="text/javascript">
    document.getElementById('player').addEventListener('click', myfunc(), false);
</script>

Но есть проблема ... это не работает при нажатии (когда пользователь нажимает на #player), это работает, когда пользователь загружает страницу (onload), и мне это не нужно, мне нужно нажать, чтобы запустить функцию ... Где проблема?

Ответы [ 3 ]

2 голосов
/ 24 августа 2011

Во-первых, вам кажется, что в вашем селекторе jQuery отсутствует символ # (я предполагаю, что это должен быть селектор идентификатора, потому что вы также привели пример с использованием getElementById), поэтому в данный момент он ищет элемент с именемplayer, а не элемент с идентификатором «player».

Во-вторых, вы не хотите выполнять функцию myfunc при передаче ее функции click.Вместо этого вы хотите передать ссылку на функцию (обратите внимание на отсутствие скобок):

$("#player").click(myfunc);

То же самое верно для вашего второго примера, но вы правы в том, что при использовании getElementById вы передаетев строке без символа #:

document.getElementById('player').addEventListener('click', myfunc, false);
0 голосов
/ 24 августа 2011

То, что вы делаете неправильно, заключается в том, что вы не передаете функцию как ссылку на метод щелчка jQuery, а выполняете ее.

Замените $("player").click(myfunc()); на $("player").click(myfunc);, и все должно работать, как ожидалось.То же относится и ко второму примеру.

0 голосов
/ 24 августа 2011

Вам необходимо отправить ссылки на функции :

<script type="text/javascript">
    $("#player").click(myfunc);
</script>


<script type="text/javascript">
    document.getElementById('player').addEventListener('click', myfunc, false);
</script>

Когда вы $("#player").click(myfunc());, вы фактически выполняете myfunc.@Paul указал, что вам также не хватает идентификатора jQuery id для вашего селектора.

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