加時在Web項目中,有必要在某種重疊窗口的打開一些鏈接,而其他人應該只是正常打開。更改某些錨標籤的行爲,甚至是動態
的聯繫總是正常錨標記,並可以...
- 被添加爲模板固定內容
- 通過使用HTML編輯器,如tinyMCE的
我版主加入花了相當長的時間考慮一下什麼是安全,適當,相當交叉的兼容和優雅的機制。我最後的想法是利用在a
標籤都有效稱爲overlayWindow
一類,只是迫使版主將該類添加到鏈接,如果他們創造他們想被疊加窗口內打開鏈接。
這一切都很好。現在我可以這樣做:
$(document).ready(function(){
$('a.overlayWindow').on('click', function(event){
event.preventDefault();
// set off an ajax request to get overlay window content, then display it
});
});
太好了。但有一個問題。錨標籤也
- 動態地提供,甚至加入到網頁頁面加載後
這意味着我需要一些安全的方式,以確保上面的代碼,只要任何進一步錨執行標籤被添加到頁面(通過任何方式)。
由於這似乎很遠,我還可以忍受那種攔截所有Ajax請求,並確保每當一個Ajax調用完成執行準備代碼的解決方案。
可以這樣做嗎?如果是,如何?
(我也相當開放,以完全不同的方法來解決我的實際問題,因此任何建議,歡迎)。
是什麼問題?如果您使用.on(),則點擊處理程序將被添加到所有元素。將它們添加到DOM中並不重要 –
對不起,我第一次誤讀你的評論。我認爲使用選擇器並對它返回的元素應用特定的處理程序只會影響那些在給定時間點是文檔一部分的元素? – SquareCat
@Scott:那是不正確的。 「on」只適用於你與事件代表團的建議。 OPs代碼不知道這一點(它需要事件名稱和回調函數之間的附加參數)。看到我的答案。另外:https://learn.jquery.com/events/event-delegation/ – Faust