我正在爲客戶端開發基於JavaScript的旗幟,並且遇到了困難。橫幅廣告在Chrome,Firefox,IE7和8上運行良好。然而,Safari允許用戶關閉橫幅並打開一次,然後停止響應點擊。用戶應該能夠根據需要多次打開和關閉橫幅。jQuery的委託()在Safari中無法正常運行,在所有其他瀏覽器中都正常工作
不是塞滿了這則訊息代碼片段中,該橫幅的例子可以在這裏找到:http://jsfiddle.net/M3EPK/2/embedded
我註釋掉,試圖在一個點上,以前的代碼。
任何人都可以給我任何解釋,爲什麼它可以在所有這些瀏覽器中工作,但在Safari中如此悲慘地失敗。所有的瀏覽器都是最新版本(除了IE可以說話外)。
只是想知道,爲什麼你有$($橫幅)?不應該是$('#banner')?我看到你把var $ banner =。我認爲這應該只是var banner =,然後你可以做$(banner)。我不認爲你可以在JavaScript中放置一個美元符號。 – Metropolis 2010-09-22 18:25:10
您還可以簡化jQuery(document).ready(function($)to $(function(){}); – Metropolis 2010-09-22 18:26:31
我使用$ banner,因爲如果我要使用$('#banner'),那將需要jQuery在每次遇到它時都會查找它的位置,美元符號預先加上變量名稱用於我自己的目的,它讓我知道該變量與一個jQuery對象相關聯。至於簡化,我把它作爲jQuery文檔)...因爲我使用jQuery.noConflict()來釋放可能在頁面上的任何其他庫的美元符別名 – 2010-09-22 18:35:25