這比我所知道的違背事物精神的常見問題要抽象一些,但我希望我仍能得到很好的迴應。如何防止多次繪製模態?
這是問題所在。我們有一個用PHP編寫的相當複雜的Web應用程序。其目的是相對不重要的,但簡單地說:我們正在使用的Comet/AJAX/JSON/的JavaScript/PHP/MySQL的(NO jQuery的,但是,本地JavaScript只)來呈現實時顯示數據的控件。在整個應用程序中,我們使用原生JavaScript來渲染彈出式模式。它是相當複雜的邏輯,用於測試頁面中是否存在具有相同名稱的模式,並防止創建相同的新版本,當然,創建圖層時會創建一個圖層,以防止與下面的鏈接進行交互。
問題是我們至少有一種模式可以在頁面上呈現之前多次調用,這是因爲AJAX調用需要從數據庫中收集數據並將其組裝起來。如果用戶要在所述鏈接上「雙擊」,則將呈現兩個模式,一個在另一個之上。我已經能夠實際渲染8-10這些。與最頂層的模式交互似乎被破壞,因爲用戶實際上是在最底層的模式上實現可摺疊的標題。一旦你開始關閉對話框併到達底部,你可以看到你點擊的地方。
所以,我的問題是:什麼是防止這種行爲的最好辦法?
我認爲簡單地增加一個函數的onClick事件,將取出的onClick從鏈接屬性第一次點擊與未成年人超時後(比如500毫秒)。我也考慮嘗試實現位測試邏輯,這些邏輯可以計算點擊次數,實際上只有首次點擊後的事件,並在模式關閉時重置。
什麼我不知道是如果有人有任何想法或建議,或者甚至已經解決了類似的問題,對最佳實踐的一些見解,以完成在這種情況下我的目標。
非常感謝。
如果你使用jQuery,你總是可以嘗試['。一()'](http://api.jquery.com/one /) – Bojangles 2013-05-03 13:04:49
會我可以。儘管我很喜歡在這個項目中使用jQuery,但項目經理完全並且完全反對非本地JavaScript。不過謝謝你的建議。我應該把這些信息包括在內,以便更清楚。 – fskirschbaum 2013-05-03 13:47:51
啊,慚愧。可能值得一提的是,你沒有使用jQuery,因爲很多讀者(包括我自己)常常假設它的存在 – Bojangles 2013-05-03 14:35:40