1

これに最適なタイトルがわかりませんでした...

ここで提供されるライブリンク

このプロジェクトの私の全体的な目標。ダウンロードするにはメールが必要な特定のドキュメントがあります。asp.netを介してリピーターをバインドし、jqueryを使用してhrefを削除し、メールアドレスが追加されるまでrelタグに配置します。

$('a[data-email="True"]').each(function () {
    var href = $(this).attr('href');
    $(this).attr('href', '#_');
    $(this).attr('rel', href);
});

data-emailjqueryは、タグ= "True"であるかどうかを確認し、そうである場合bootstrap modalはポップアップしajax、フォームを介してaを呼び出しweb method、重複していない場合はデータベースに電子メールを追加します。

$('.emailcheck').live("click", function (e) {        
    if ($(this).data("email") == "True") {
        $('#emailModal').modal();
    }
});

成功すると、モーダルが閉じ、各data-email="True"リンクがに追加されhrefdata-emailがFalseに設定されます。

$('#emailModal').modal('hide');
$('body a[data-email="True"]').each(function () {
    var reltag = $(this).attr('rel');
    $(this).attr('href', reltag);
    $(this).attr('data-email', 'False');
});

これはすべて正常に行われ、もう一度クリックするとメールがダウンロードされます。ただし、ダウンロードリンクをクリックすると、モーダルがポップアップします。

誰かがモーダルがまだポップアップしている理由についての解決策を教えてもらえますか?また、成功スクリプトには、ダウンロードを自動的にトリガーする方法がありますか?

4

1 に答える 1

1

これを試してみてください - それほど大きな変化はありませんが、動作することを示すjsFiddleがあります

OnLoad 関数

$('.emailcheck').each(function() {
    var href = $(this).attr('href');
    $(this).attr('href', '#_').attr('rel', href);
});

クリックイベント

$(document).on("click", '.emailcheck', function(e) {
    e.preventDefault()
    if ($(this).attr("data-email") == "True") {
        $('#emailModal').modal();
    }
});

メール送信機能

$('#emailModal').modal('hide');
$('.emailcheck').each(function() {
    var reltag = $(this).attr('rel');
    $(this).attr('href', reltag).attr('data-email', 'False');
});
于 2012-12-21T02:14:46.257 に答える