Я хочу, чтобы кто-то поделился этим сайтом со мной давно http://cors.io/ , он бы сэкономил массу времени по сравнению со строительством и полагался на мой собственный прокси. Однако, когда вы переходите к производству, ваш собственный прокси-сервер является лучшим выбором, поскольку вы все еще контролируете все аспекты ваших данных.
Все, что вам нужно:
https://cors.io/?http://HTTP_YOUR_LINK_HERE
Вы должны использовать jQuery('#bar')[0].click();
, чтобы имитировать щелчок мышью на фактическом элементе DOM (а не на объекте jQuery), вместо использования метода jQuery .trigger()
.
Примечание. Уровень DOM Level 2 .click()
не работает на некоторых элементах в Safari . Вам понадобится использовать обходной путь.
jQuery('#foo').on('click', function(){
window.open(jQuery('#bar').attr('href'), '_blank');
});
Функция jQuery's .trigger('click');
приведет к возникновению события на этом событии, она также не активирует действие браузера по умолчанию.
Вы можете имитировать те же функции со следующим JavaScript:
jQuery('#foo').on('click', function(){
var bar = jQuery('#bar');
var href = bar.attr('href');
if(bar.attr("target") === "_blank")
{
window.open(href);
}else{
window.location = href;
}
});
Может быть полезно:
Код, вызывающий триггер, должен идти после вызова события.
Например, у меня есть код, который я хочу выполнить, когда # значение cost_tickets изменяется, а также, когда страница перезагружается
$(function() {
$("#expense_tickets").change(function() {
// code that I want to be executed when #expense_tickets value is changed, and also, when page is reload
});
// now we trigger the change event
$("#expense_tickets").trigger("change");
})
Попробуйте это для меня:
$('#bar').mousedown();
Я пробовал два первых ответа, это не сработало для меня, пока я не удалил «display: none» из моих элементов ввода файла. Затем я вернулся к .trigger (), он также работал в Safari для окон.
Итак, вывод, Не используйте display: none; чтобы скрыть ввод файла, вы можете использовать opacity: 0. Вместо этого.
Вам просто нужно поместить небольшое событие таймаута, прежде чем делать .click()
следующим образом:
setTimeout(function(){ $('#btn').click()}, 100);
Это поведение JQuery. Я не уверен, почему он работает таким образом, он только запускает функцию onClick в ссылке.
Попробуйте:
jQuery(document).ready(function() {
jQuery('#foo').on('click', function() {
jQuery('#bar')[0].click();
});
});
См. мою демонстрацию: http://jsfiddle.net/8AVau/1/
jQuery(document).ready(function(){
jQuery('#foo').on('click', function(){
jQuery('#bar').simulateClick('click');
});
});
jQuery.fn.simulateClick = function() {
return this.each(function() {
if('createEvent' in document) {
var doc = this.ownerDocument,
evt = doc.createEvent('MouseEvents');
evt.initMouseEvent('click', true, true, doc.defaultView, 1, 0, 0, 0, 0, false, false, false, false, 0, null);
this.dispatchEvent(evt);
} else {
this.click(); // IE Boss!
}
});
}
Технически это не ответ на это, но хорошее использование принятого ответа ( https://stackoverflow.com/a/20928975/82028 ), чтобы создать кнопки next и prev для вкладок на jQuery поля ACF:
$('.next').click(function () {
$('#primary li.active').next().find('.acf-tab-button')[0].click();
});
$('.prev').click(function () {
$('#primary li.active').prev().find('.acf-tab-button')[0].click();
});
Вы не можете имитировать событие click с javascript. Функция jQuery .trigger()
запускает событие с именем «click» на элементе, которое вы можете захватить с помощью метода .on()
jQuery.