2012-10-08 73 views
3

好吧,所以我最近發現這個腳本叫做「Selectivizr」,我非常興奮,但是我把它插入到我的項目中,正如它所說的那樣設置它,並且它不起作用。IE8中的CSS3選擇器?

所以,我正在尋找的是任何一種JavaScript庫/腳本,這將允許我在IE8中使用CSS3選擇器(尤其是:checked)。

Selectivizr似乎破損,並且在一年內未更新。有其他人有幸運了嗎?

有沒有人知道任何其他腳本,將允許在IE8中使用CSS3選擇器?

不找CSS3花式像邊界半徑,陰影等只是爲了尋找選擇,像:before:after:checked等..

+0

我用':before'和':after'用jQuery。 ':checked'可能也適用。如果不是,擴展jQuery應該不會太困難。 – JCOC611

+0

谷歌瀏覽器框架是否覆蓋這個領域? – Blazemonger

+1

不,我永遠不希望用戶必須下載一些東西才能使用該網站。 – ndugger

回答

0

使用jQuery的代碼,你可以使用幾行來打開所有的複選框類(或它的容器),它是選中或取消選中任何時候。然後,您可以在所有瀏覽器中使用常規CSS代碼。

$("input[type='checkbox']").click(function() { 
    $(this).parent().toggleClass("checked", this.checked); 
});​ 

工作示例:http://jsfiddle.net/jfriend00/7jA5r/

如果您動態創建複選框,那麼您可以使用.on()的動態表單來確保捕獲它們。

我個人寧願使用像這樣幾行代碼的解決方案,而不是使用試圖添加CSS樣式文件功能的沉重庫。如果你打算使用它,那麼在採納它之前,確保你瞭解封面下的真實情況。


如果你只是想選擇libraryby本身,滋滋聲選擇庫中的作品在各種不同的瀏覽器包括回IE6一路的。它將適應主機瀏覽器的功能,使用當前的許多內置功能,並在主機瀏覽器不支持顯式功能時使用自己的代碼。

您只能使用here中的選擇器庫本身,或者它也是jQuery中的選擇器庫。

使用起來非常簡單。你只是這樣做:

var items = Sizzle(":checked"); 

而且你將有一個匹配選擇器的DOM元素數組。

+0

與此相關的是,您需要編寫JS而不是僅寫入CSS,這是selectivizr和IEX.js應該執行的操作。就我個人而言,其中的任何一個都沒有取得什麼成就,IEX.js尤其是臃腫和錯誤。還有':checked',當輸入被選中或未被選中時,它需要更新直播。 –

+0

@WesleyMurch - 是的,這是爲JavaScript代碼 - 這就是我認爲的OP所要求的 - 能夠使用JavaScript的CSS3選擇器。如果他們想在IE版本較舊的CSS樣式文件中使用CSS3選擇器 - 祝你好運。實現這一點很困難。 – jfriend00

+0

那麼你是否說IEx.js應該皺起眉頭?我不是反對編寫一些jQuery,因爲我只是在學習它,但任何指針?如果檢查/收音機被選中,我只是試圖改變風格。我可以在CSS3中完成這一切,但是沒有IE8。 – ndugger

1

院長愛德華的IE9.js是非常穩固的,雖然我有在使用其他庫時還聽說過一些不兼容問題。從來沒有親身體驗過它們,但很長一段時間沒有經常在野外使用圖書館。將其插入並播放,如果沒有中斷,那麼你就全部設置好了。

鏈接:http://code.google.com/p/ie7-js/

演示:http://ie7-js.googlecode.com/svn/test/index.html

+0

只要確定,但這將適用於ie8?名字讓我困惑,哈哈。我只是想確保,因爲:檢查只顯示在ie9.js下,但也適用於ie8? – ndugger

+0

所有版本均與IE6 +兼容。命名慣例遵循的模式是IE7.js將IE7的功能填充到IE6,IE8.js將IE8的功能填充到IE6-7等。 – amustill

+0

嗯,那麼我將不得不放棄這個!如果它不起作用,我將不得不再問一遍,但它看起來很有希望! – ndugger