2017-03-03 126 views
0

我試圖用一個按鈕點擊jQuery添加此類。 我必須添加/刪除它,不能完全弄清楚確切的jQuery代碼。使用jQuery 1.12。使用jQuery將CSS代碼添加到*

重要注意事項 - 我必須在焦點狀態的當前CSS和已更改的CSS(已添加邊框)之間切換。這必須發生到頁面上的所有元素

jQuery代碼:

$("#button").on('click', function() { 
//jQuery Code needed to add the class/style. 
} 

CSS代碼:

*:focus { 
    border:3px solid black !important; 
} 
+1

'*'表示集中在每一個元素得到了邊界。 – Mouser

+0

您需要關注元素:'$(this).focus();'。如果你希望能夠使用這些類型的類名,只需要將你的聲明改爲'*:focus,.do-focus {'那麼你可以使用'$(this).addClass('do-focus')' –

+0

所以「#button」點擊你想添加邊界到所有元素? –

回答

0

最後,我用Java腳本的焦點事件,以及所用的附加類綁定/刪除類來處理這個問題。

document.addEventListener('focus',function(e){ 
 
\t var focused = $(':focus'); 
 
\t focused.addClass('className'); 
 
\t focused.focusout(function() { 
 
\t \t $(this).removeClass('className'); 
 
    \t }); 
 
}, true);

1

我會做:

$("#button").on('click', function() { 
    $('div').addClass('focus'); // or toggleClass 
} 

.focus { 
    border:3px solid black !important; 
} 

瞭解更多:addClass()removeClass()toggleClass()

+0

這將是我理想的解決方案。 –

+0

我必須這樣做,當它們的焦點時,我在網頁上的所有元素..我正在考慮使用$('*')。onfocus() – Yossi

+0

嘗試$('div:focus')。addClass('newclass 「); //或toggleClass –

-2

可以使用*選擇。

FIDDLE

下面是代碼

$("button").on('click', function() { 
 
var elementCount = $("#test").find("*").css("border", "3px solid red").length; 
 
});
h2, 
 
    span, 
 
    p { 
 
    width: 80px; 
 
    height: 40px; 
 
    float: left; 
 
    padding: 10px; 
 
    margin: 10px; 
 
    background-color: #EEEEEE; 
 
    }

 
<div id="test"> 
 
    <h2>H2</h2> 
 
    <span>SPAN</span> 
 
    <p>P</p> 
 
</div> 
 
<button>Button</button>

+0

這是一個非常糟糕的解決方案 –

+0

它可以包裝在一些div更好我已經編輯了答案。我知道這不是最好的解決方案,但我根據這個問題回答 –

0

我只會改變類的身體的。

document.querySelector('#button').addEventListener('click', function(e) { 
    document.body.classList.toggle('-changedFocus'); 
}); 

,併爲CSS

body.-changedFocus *:focus { 
    // your changes 
}