2017-01-14 150 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。嘗試點擊第一個標題,你會看到這個問題。之後,重新加載網頁,然後點擊第六個鏈接。現在,關閉模式並再次點擊第一個鏈接。這一次,一切都應該完美。

更新:語法錯誤不存在。我錯誤地在問題中提出了這個問題。 :)

+0

首先,試圖擺脫關閉js錯誤。未捕獲的ReferenceError:swfobject未定義。它可能會阻止你的腳本傳播 –

+0

@RafałŁyczkowski錯誤是由於其他域。它與我的代碼無關。 –

回答

0

這段代碼有語法錯誤(刪除})):

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

全功能應該是:

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 
    } 
    }) 
}; 

工作DEMO