Click() работает в IE, но не в Firefox
У меня есть код, который тривиален, но работает только в IE, а не в Firefox.
$(document).ready(function(){
$('li#first').click();
});
Я также попробовал:
document.getElementById('first').click();
Но это тоже не работает.
Это ошибка / особенность IE или click()
не поддерживается в других браузерах?
Отвечая на комментарии:
- Сначала есть один элемент с идентификатором, не более.
- Это щелчок по элементу списка, который расширяет элемент и перемещает фокус на элемент карты Google.
- Выполнение кода в ответе Патрика (добавление еще одного события click к элементу) вызвало интересное поведение. При беге
$('li#first').click()
только новое событие сработало, но физически щелкнул элемент с помощью мыши (как новой, так и оригинальной).
Заранее спасибо.
5 ответов
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);
}
Ваш код должен работать в 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>
Попробуйте этот 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();
});
Вы пытаетесь перейти на первую ссылку? Вы не можете вызвать действие ссылки по умолчанию с помощью клика.
Но вот обходной путь:
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
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
});