Я хочу динамически создать элемент <a href="mailto:...">, а затем «щелкнуть» по нему.Все без изменения страницы.
<a href="mailto:...">
Я пытаюсь это:
$('<a href="mailto:test@test.com"> </a>').click();
... безрезультатно
Это не JQuery, но он работает просто отлично.
Нажатие на ссылку означает изменение window.location, как насчет
window.location = "mailto:test@test.com";
Чтобы он работал с jQuery, вам сначала нужно выбрать элемент DOM внутри объекта jQuery.
$('body').append('<a id="link" href="mailto:test@test.com"> </a>'); $('#link')[0].click();
Обратите внимание на [0]
fiddle: https://jsfiddle.net/fkwhvvhk/
Попробуйте что-то вроде этого ...
Демо: http://jsfiddle.net/wdm954/xtTGX/1
$('.a').append('<a class="b" href="mailto:test@test.com"> </a>'); $('.b').click(function() { window.location = $(this).attr('href'); }).click();
.click() работа с DOM, а не с объектом jQuery
.click()
должно быть:
$('<a href="mailto:test@test.com"></a>')[0].click();
почему бы просто не изменить расположение окна на href ссылки? Есть ли какая-то конкретная причина, по которой вам нужно использовать ссылку?
В противном случае:
window.location = 'http://example.com';
Йо может создать тег следующим образом:
$('PARENT_TAG').append('<a id="dinamic_link" href="mailto:test@test.com"> </a>'); //Now click it $('#dinamic_link').click();
HTH!
Просто делал урок по этому вопросу!
$("[href='mailto:test@test.com']").click();
При этом следует выбрать все элементы с атрибутом href со значением «mailto: test@test.com».
www.w3schools.com / jquery / jquery_selectors.asp
Невозможно симулировать нормальные клики.Вы можете запускать только click обработчики событий, которые были привязаны к элементу ..
click
Поскольку @ Алекс опубликовал сообщение, вы можете изменить window.location для достижения того же эффекта.
window.location
Я бы сказал, что вы должны рассмотреть возможность добавления href к контейнеру (в основном div), используя .append () и вызов .click ()
$('parent_div').append('<a id="link" href="mailto:test@test.com"> </a>'); //Now click it $('#link').click();