2017-03-03 88 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 
}