2012-03-08 46 views
1

我試圖創建一個乾淨的jQuery彈出與不同的功能。我不想使用插件(我想學習哈哈)。這是我想要的。jquery - 彈出開始...如何做其餘

  1. 中心它在屏幕上(這樣做了,工作)
  2. 近,彈出每當用戶點擊它外面。 (我們需要能夠點擊INSIDE彈出的想法)
  3. 我希望彈出窗口的html內容根據您點擊的鏈接而改變。 (當然我想在彈出的鏈接1的列表,以及鏈接2形式) - (不知道的一切是如何做到這一點)

現在,這裏是我有:http://jsfiddle.net/RYwsy/2/

我做了一些研究,但是那裏有很多不同的技術,我完全失去了。我希望最簡潔/最快的方式可以用jQuery來做到這一點。

我仍然在尋找和嘗試的東西,但我也想要一些幫助。

謝謝!

+0

一個很好的例子來自..在頁面或外部文件?更多的細節將有助於 – charlietfl 2012-03-08 18:44:15

+0

在頁面中肯定! – Lelly 2012-03-08 18:47:53

+0

需要更多的細節,然後你想如何構建內容與鏈接。對每一個內容和鏈接使用一個普通的類,將有很大幫助 – charlietfl 2012-03-08 18:51:10

回答

2

哇,這更棘手超過預期......長話短說,我編輯你的小提琴:Here和現在的工作。

編輯:新撥弄使用該事件傳播更加整齊:http://jsfiddle.net/RYwsy/23/

3點是非常簡單的。如果你希望內容來自頁面上的某個地方,可以根據點擊鏈接的某些屬性或它所處的上下文來找到它(如查看其兄弟姐妹或其他內容)。在我的示例中,我只是向鏈接添加了一個id屬性,並用它來標識包含內容的隱藏div並將其插入到彈出窗口中。

點2更棘手。起初,我只是將一個點擊處理程序附加到除彈出窗口以外的所有內容,並在其中隱藏了彈出窗口。這不起作用,因爲彈出窗口中的點擊事件通過dom傳播,並最終到達隱藏彈出窗口的某個元素。然後我添加了一個檢查,看看我們是否在點擊彈出窗口,如果是,就停止傳播。

這是否是最乾淨的解決方案可能是極具爭議的,但它是相當乾淨,如果不出意外就是爲什麼你需要了解JavaScript事件傳播:-)你想去哪兒內容

+0

非常感謝你的回答! – Lelly 2012-03-15 17:02:46

0

您可以使用這樣的事情在彈出加載HTML -

$('a').click(function(e) { 
    e.preventDefault(); 
    var thisHREF = $(this).attr('href'); 
    $('popup').load(thisHREF); 
}); 
相關問題