Как сделать JQuery нажмите <a href="test.zip" id="mylink">test</a>
<script>
// this wont work
$('#mylink').trigger('click');
</script>
Пожалуйста, вы можете помочь
Как сделать JQuery нажмите <a href="test.zip" id="mylink">test</a>
<script>
// this wont work
$('#mylink').trigger('click');
</script>
Пожалуйста, вы можете помочь
$(document).ready(function(){
$('#mylink').trigger('click');
});
Просто нажмите:
$("#mylink").click();
Если ваши сценарии в голове, то вам необходимо убедиться, что элемент существует, поэтому сценарий должен быть выполнен, когда документ готов.
$(document).ready(function() {
$("#mylink").click();
});
Если ваше намерение перейти к указанному URL, как если бы пользователь нажал на ссылку, попробуйте вызвать метод вместо метода JQuery .click()
DOM .click()
:
$('#mylink')[0].click();
JQuery .click()
вызовет обработчики событий, которые вы привязали, но не вызвали поведение по умолчанию.
Это спасло мой день. Спасибо! –
document.getElementById('mylink').click();
trigger('click')
будет срабатывать событие щелчка, но не по умолчанию.
$('a').click(function(){ alert('triggered') }) // this will be fired by trigger
Если вы ждете файл, чтобы получить загружен, он не будет becauer trigger() не будет вызывать событие по умолчанию.
Вам нужно подождать, пока DOM закончит загрузку. Это можно сделать с помощью jQuery. Анонимная функция запускается при загрузке страницы, когда все элементы доступны в DOM.
<script>
$(function() {
$('#mylink').trigger('click');
});
</script>
«при загрузке _and_ как только все элементы доступны»? – nnnnnn
Да - при загрузке страницы выдается событие, сообщающее, что DOM теперь доступен. jQuery прослушивает это событие и запускает любые прослушиватели в соответствии с моим примером. – leepowell
Моя точка зрения заключалась в том, что ваше использование «и» подразумевает два события, один раз при загрузке (что происходит, когда все содержимое закончило загрузку) и один раз на готовом (что происходит, когда все элементы доступны в DOM). – nnnnnn
использовать следующий способ .... так как вы хотите загрузить файл, чтобы предотвратить переход от навигации.
$(document).ready(function() {
$('#mylink').click(function(e) {
e.preventDefault(); //stop the browser navigating
window.location.href = 'test.zip';
});
});
ваш выше код не будет работать, потому что вы присвоили значение в href
, а затем вы хотите какую-то операцию onclick
этого тега привязки.
<a href="test.zip" id="mylink">test</a>
первую очередь вы назначили .zip
к HREF. Таким образом, он сначала откроет zip-файл onclick и не вызовет никакой другой операции в триггере onclick
.
поэтому все операции вы хотите сделать, это выполнить первый затем откройте .zip
использовать код, как показано ниже
<a href="javascript:void(0);" id="mylink">test</a>
$('#mylink').click(function(){
// do your operation here
// now open zip
});
OP пытается использовать JavaScript для запуска щелчка на якоре, чтобы zip-файл был открыт/загружен. Не требуется «другой операции». – nnnnnn
Я думаю, что OP упомянул jquery в своем коде. – ripa
Любое использование jQuery _is_ использования JavaScript. Вы неправильно поняли мою точку зрения и вопрос. OP хочет, чтобы загрузка начала _without_ пользователя, который должен был щелкнуть что угодно. – nnnnnn
Вам нужно вызвать метод по умолчанию click
, а не один на JQuery. Это можно сделать, добавив параметр щелчка по умолчанию в событие click jQuery, используя this
.
<a href="http://about.com/"></a>
Так выглядит JavaScript. Он в основном создает событие, когда DOM готов, и щелкает его промежуточно, таким образом, следуя ссылке.
$(function() {
$('a').click(function() {
// 'this' is not a jQuery object, so it will use
// the default click() function
this.click();
}).click();
});
Чтобы увидеть живой пример (открытие about.com), см: http://jsfiddle.net/8H9UX/
Скрипка глупа, но ответ правильный. +1 –
Но это сгенерирует TWO GET Requests, по умолчанию один и вызванный ... –
@AndreaLigios Спасибо, что заметили! Я обновлю код. – Broxzier
, что вы ожидаете, произойдет здесь –
загрузка должна начаться автоматически - благодаря –
, что вы ожидаете, что произойдет? Код, который у вас есть, предназначен для запуска события. Он не имитирует пользователя, нажимая на ссылку –