最近我在做一個傳統項目一些重構對我的工作和我偶然發現了一些「越野車」可能。添加同一類兩次在一個元件上
某處框架內的自定義pageloader讀取端點的controller/action
並應用那些其身體上的兩班。
它確實可以說,像這樣:
$('body').removeAttr("class").addClass(controller + ' ' + action);
隨着index
控制器與cars
作爲行動的身體看起來像:
$('body').removeAttr("class").addClass('index cars');
<body class="index cars">
到目前爲止好(不完全)。
後來再搭配你會做特殊元素:
$('.index.cars')
現在有一個問題,如果動作和控制器具有相同的名稱。 應用的兩個階層,可以說cars/cars
看起來像這樣:
<body class="cars cars">
的選擇$('.index.cars')
正常工作與以上。
現在最有趣的部分是,如果你試圖用jQuery 1.11.1添加的類別,然後這不起作用。它不能在一個元素上添加具有相同名稱的第二個類。
所以這個:
$('body').removeAttr("class").addClass('cars cars');
<body class="cars">
不起作用:-(
搜索了一下,在谷歌和這裏,但找不到東西
的問題是:
是在一個元素上有兩次相同的類是否有效?如果是,那麼除了用類創建一個選擇器外,有沒有什麼特定的原因會導致這種情況呢?
爲什麼不在'addClass(controller +''+ action);'之前添加一個驗證來檢查名稱是否相同,然後再附加它們。 – emmanuel 2014-09-29 18:57:44
謝謝@emmanuel。我知道如何解決這個問題,但我只是在徘徊...... – 2014-09-29 18:58:36
http://stackoverflow.com/questions/10050851/use-duplicate-class-name-on-an-element – LcSalazar 2014-09-29 19:04:02