web-dev-qa-db-ja.com

jQueryでリンクを動的に作成して「クリック」

<a href="mailto:...">要素を動的に作成してから、それをクリックします。ページを変更せずにすべて。

私はこれを試しています:

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

...無駄に

14
aidan

リンクをクリックすると、window.locationが変更されます。

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

Jqueryではありませんが、問題なく動作します。

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

JQueryで動作させるには、まずjQueryオブジェクト内のDOM要素を選択する必要があります。

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

[0]に注意してください

フィドル: https://jsfiddle.net/fkwhvvhk/

11
jBelanger

このようなものを試してください...

デモ: 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
wdm

.click() jQueryオブジェクトではなく、DOMで動作します

そのはず:

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

次の方法でタグを作成できます。

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

HTH!

2
SubniC

ウィンドウの場所をリンクのhrefに変更しないのはなぜですか?リンクを使用する必要がある特定の理由はありますか?

さもないと:

window.location = 'http://example.com';
2
Adam Hutchinson

ちょうどこれでチュートリアルをやっています!

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

これにより、「mailto:[email protected]」を値として持つhref属性を持つすべての要素が選択されます。

www.w3schools.com/jquery/jquery_selectors.asp

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

.append()を使用してコンテナ(主にdiv)にhrefを追加し、.click()を呼び出すことを検討する必要があると思います

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

通常のクリックをシミュレートすることはできません。エレメントにバインドされているclickイベントハンドラーのみをトリガーできます。

@ Alexが投稿したようにwindow.locationを変更して、同じ効果を得ることができます。

1

私は同様の問題でいくつかの問題が見つかりましたが、私にとって最も簡単な方法を見つけました:

_    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でしたが、私はそれなしでそれをしました。それが誰かの助けになることを願っています。アンカーを設定して画像をダウンロードし、直後にクリックする簡単な方法です。

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

.onを使用してから、.clickを呼び出す必要があります。動的に生成されたハイパー参照は、単純な.click()では機能しません

0
Raj Sharma