2017-01-14 7 views
3

リンクをクリックするとモーダルウィンドウを開いて情報を表示するリンクのリストがあります。私はe.preventDefault();を使用してブラウザのデフォルトの動作を防ぎ、私自身のカスタムコードを追加して自分のデータをモーダルにロードします。コンテンツはうまくロードされますが、数秒後にリンクをクリックしたウェブサイト全体がモーダル内に読み込まれます。モーダルウィンドウでクリックしたリンクをリンクから読み込まないようにします。

  1. 特定のウェブサイトのリンクでのみ発生します。
  2. そのウェブサイトからのリンクは、最初にクリックする必要があります。他のリンクをクリックすると、まずこの問題が解決されます。

は、ここに私のコードです:

$('a.modal-link').on('click', openModal); 

function openModal(evt) { 
    evt.preventDefault(); 
    var link = $(this).attr("href"); 
    var text = $(this).text(); 
    safeModal(link, text); 
}; 

function safeModal(linkUrl, linkText) { 
    var link = linkUrl; 
    var page = window.location.href.split('?')[0]; 
    var text = linkText; 
    var ajaxURL = "http://example.com/script.php"; 

    $.ajax({ 
    type: "POST" 
    , url: ajaxURL 
    , data: { 
     link: link 
     , page: page 
    } 
    , success: function (markup) { 
     $(".feed-modal .modal-body").html(markup); 
    } 
    }) 
}; 

私も実際のウェブサイトへのリンクを提供することができますので、あなたは(私はそれを正しく説明していない可能性があります)問題を自分で見ることができます。

更新:the linkを追加しています。最初の見出しをクリックすると、問題が表示されます。その後、Webページをリロードし、6番目のリンクをクリックします。今度はモーダルを閉じて最初のリンクをもう一度クリックしてください。今回は完璧に動作するはずです。

更新:構文エラーは存在しません。私は間違って質問しました。 :)

+0

まず作業

function safeModal(linkUrl, linkText) { var link = linkUrl; var page = window.location.href.split('?')[0]; var text = linkText; var ajaxURL = "http://example.com/script.php"; $.ajax({ type: "POST" , url: ajaxURL , data: { link: link , page: page } , success: function (markup) { $(".feed-modal .modal-body").html(markup); //}) without this } }) }; 

、取り除くしようjsエラーをオフにします。 Uncaught ReferenceError:swfobjectが定義されていません。それはあなたのスクリプトの伝播を停止する可能性があります –

+0

@RafałŁyczkowskiエラーは、他のドメインのためです。私のコードとは関係ありません。 –

答えて

0

このコードは(})を削除)構文エラーがあります:

success: function (markup) { 
    $(".feed-modal .modal-body").html(markup); 
    }) //delete this 
} 

全体の機能は次のようになります。すべてのDEMO

関連する問題