Динамически создавать и "click" ссылку с jQuery

Я хочу динамически создать элемент <a href="mailto:...">, а затем "click". Все без изменения страницы.

Я пытаюсь это сделать:

$('<a href="mailto:[email protected]">&nbsp;</a>').click();

... безрезультатно

Ответ 1

Нажатие на ссылку означает изменение window.location, так как насчет

window.location = "mailto:[email protected]";

Ответ 2

Его не jquery, но он работает отлично.

var link = document.createElement('a');
link.href = url;
document.body.appendChild(link);
link.click();    

Ответ 3

Чтобы заставить его работать с jQuery, вам сначала нужно выбрать элемент DOM внутри объекта jQuery.

$('body').append('<a id="link" href="mailto:[email protected]">&nbsp;</a>');
$('#link')[0].click();

Обратите внимание на [0]

скрипт: https://jsfiddle.net/fkwhvvhk/

Ответ 4

Попробуйте что-то вроде этого...

Демо: http://jsfiddle.net/wdm954/xtTGX/1

$('.a').append('<a class="b" href="mailto:[email protected]">&nbsp;</a>');
$('.b').click(function() {
    window.location = $(this).attr('href');
}).click();

Ответ 5

.click() работать с DOM, а не с объектом jQuery

это должно быть:

$('<a href="mailto:[email protected]"></a>')[0].click();

Ответ 6

Yo может создать тег таким образом:

$('PARENT_TAG').append('<a id="dinamic_link" href="mailto:[email protected]">&nbsp;</a>');
//Now click it
$('#dinamic_link').click();

НТН!

Ответ 7

Почему бы просто не изменить расположение окна на ссылку href? Есть ли какая-то конкретная причина, по которой вам нужно использовать ссылку?

В противном случае:

window.location = 'http://example.com';

Ответ 8

$('#something').append('<a id="link" href="mailto:[email protected]"></a>');
$('#link').trigger('click');

Ответ 9

Я бы сказал, что вы должны рассмотреть возможность добавления href в контейнер (в основном div) с использованием .append() и вызова .click()

$('parent_div').append('<a id="link" href="mailto:[email protected]">&nbsp;</a>');
//Now click it
$('#link').click();

Ответ 10

Невозможно смоделировать обычные клики. Вы можете запускать только обработчики событий click, привязанные к элементу.

Как @Alex отправил, вы можете изменить window.location, чтобы добиться такого же эффекта.

Ответ 11

Просто делал учебник по этому поводу!

$("[href='mailto:[email protected]']").click();

Это должно выбрать все элементы с атрибутом href с "mailto: [email protected]" в качестве значения.

www.w3schools.com/jquery/jquery_selectors.asp

Ответ 12

var link = document.createElement('<a>')
link.href = "mailto:[email protected]";
link.id = "hitme"
$('#hitme').click();

Ответ 13

вам нужно использовать .on, а затем вызвать .click. Динамически сгенерированная гиперссылка не работает с простым .click()

Ответ 14

У меня обнаружены некоторые проблемы с похожей проблемой, и я нашел самый простой способ для меня:

    var link = document.createElement('a');

    link.download = 'profile.png';
    link.href = '...';
    link.id = 'example';
    link.class = '...';

    document.body.appendChild(link);

    link.click();

В моем случае я потерял много времени, пытаясь сделать это с помощью jquery, выполняя $('#example').click(), но у меня ничего не получается. По крайней мере, проблема была в jquery, я сделал это без него. Я надеюсь, что это может помочь для somenone. Это простой способ установить привязку для загрузки изображения и сделать клик сразу после.