-4

メールアイコンのあるdivがいくつかあります。

<div class="icon-send-mail" id="test1@email.com"></div>
<div class="icon-send-mail" id="test2@email.com"></div>
<div class="icon-send-mail" id="test3@email.com"></div>

ユーザーがそのアイコンをクリックしたときにメールを送信したい。

$( document ).ready( function() {
    $('.icon-send-mail').click(function(email) {
      var mailto_link = 'mailto:'+email;
      var win = window.open(mailto_link,'emailWindow');
    });
});

これはどのように行うことができますか?

4

5 に答える 5

2

関数内の最初の行を編集します。

/* You were passing the event object! */
var mailto_link = 'mailto:'+this.id;

カスタム JQuery と JavaScript のパフォーマンス ベンチマーク

JavaScript/JQuery

$(document).ready(function(){
    $('.icon-send-mail').click(function(event) {
      var mailto_link = 'mailto:'+this.id;
      var win = window.open(mailto_link,'emailWindow');
    });
});

ピュア Javascript

window.onload = function () {
    var elems = document.getElementsByClassName('icon-send-mail');
    for (var i in elems) {
        if (elems[i].nodeType == 1) elems[i].addEventListener('click', function (event) {
            var mailto_link = 'mailto:' + this.id;
            var win = window.open(mailto_link, 'emailWindow');
        });
    }
};

ボーナスCSS

.icon-send-mail {
    cursor: pointer;
}

ライブデモ

于 2013-07-31T13:26:43.563 に答える
2

クリック ハンドラーへの入力は、イベント オブジェクトです。そのイベントオブジェクト内で、クリックされた要素を取得できるため、IDです。この場合、メールアドレスを保持します

$('.icon-send-mail').click(function(event) {
  var mailto_link = 'mailto:'+event.target.id;
  var win = window.open(mailto_link,'emailWindow');
});
于 2013-07-31T13:28:30.870 に答える
1

この行を置き換える必要があります。

var mailto_link = 'mailto:'+email;

次の行で:

var mailto_link = 'mailto:'+($(this).attr('id'));
于 2013-07-31T13:26:02.493 に答える