Click () работает в IE, но не в Firefox - PullRequest
9 голосов
/ 11 мая 2010

У меня есть код, который тривиален, но работает только в IE, а не в Firefox.

$(document).ready(function(){
    $('li#first').click();
});

Я также пробовал:

document.getElementById('first').click();

Но это тоже не работает.

Это ошибка / функция IE или click() не поддерживается в других браузерах?

Ответ на комментарий:

  1. Существует один элемент с идентификатором во-первых, не более.
  2. Это элемент щелчка по списку, который расширяет элемент и перемещает фокус на элемент карты Google.
  3. Выполнение кода в ответе Патрика (добавление еще одного события щелчка к элементу) вызвало интересное поведение. При запуске $('li#first').click() сработало только новое событие, но физически щелкнул элемент с помощью мыши (как новой, так и оригинальной).

Заранее спасибо.

Ответы [ 5 ]

10 голосов
/ 12 мая 2010

Firefox не поддерживает click ().

Выполнение document.getElementById('first').click() возвращает следующую ошибку click is not a function

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

Фрагмент приведен ниже и должен быть включен только один раз на странице:

HTMLElement.prototype.click = function() {
   var evt = this.ownerDocument.createEvent('MouseEvents');
   evt.initMouseEvent('click', true, true, this.ownerDocument.defaultView, 1, 0, 0, 0, 0, false, false, false, false, 0, null);
   this.dispatchEvent(evt);
} 
2 голосов
/ 30 марта 2011

Ваш код должен работать в Firefox. Вот полный фрагмент, который доказывает это:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head><title></title>
<style type="text/css"><!--
--></style>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
<script type="text/javascript"><!--
jQuery(function($){
    $(document).ready(function(){
        $('li#first')
            .click(function(){
                alert("I've been clicked: " + $(this).text());
            })
            .click();
    });
});
//--></script>
</head>
<body>

<ul>
    <li id="first">First item</li>
    <li>Second item</li>
    <li>Third item</li>
</ul>

</body>
</html>
1 голос
/ 07 марта 2012

попробуйте это HTML

<a id="link" href="url">click here</a>

JS

$(document).ready(function(){
    $("#link").click(function(){
        window.location.href = $(this).attr('href');
    });
});

также, если это что-то, что вы не хотите делать, попробуйте что-то вроде этого:

$(document).ready(function(){
        $("#link")[0].click();
    });
0 голосов
/ 10 октября 2012

Firefox поддерживает функцию JQuery .click (). У меня была такая же проблема, пока я не указал имя тега в моем селекторе. По сути, у меня было что-то вроде этого:

<a id="vidLeftArrow" blah blah blah>...</a>
$("#vidLeftArrow").click(function () {
   //Do something
});

Что не сработало. Я должен был изменить javascript на это:

<a id="vidLeftArrow" blah blah blah>...</a>
$("a#vidLeftArrow").click(function () {
   //Do something
});
0 голосов
/ 11 мая 2010

Вы пытаетесь перейти на первую ссылку? Вы не можете вызвать действие ссылки по умолчанию с помощью клика.

Но вот обходной путь:

var link = jQuery("#first>a", this)
if(!link.onclick) window.open(link.href, link.target || "_self")
else jQuery(link).click()

Источник: http://forum.jquery.com/topic/jquery-a-0-click-not-working

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