我制作了一个测试网站,希望将其作为辅助项目,但遇到了问题。我想将jQuery代码转换为JavaScript,这样我就可以将其称为函数并编辑和编写Cookie。这是我的代码示例:
$( ".inner-switch" ).on("click", function(){
if( $( "body" ).hasClass( "dark" )) {
$( "body" ).removeClass( "dark" );
$( ".inner-switch" ).text( "OFF" );
} else {
$( "body" ).addClass( "dark" );
$( ".inner-switch" ).text( "ON" );
}
});
这是我的网站的GitHub:https://github.com/wrssmithjr04/wrssmithjr04.github.io感谢您的帮助!
您的示例中的函数为Anonymous。您只需要将其取出并命名即可。
function YourFunction(){
if( $( "body" ).hasClass( "dark" )) {
$( "body" ).removeClass( "dark" );
$( ".inner-switch" ).text( "OFF" );
} else {
$( "body" ).addClass( "dark" );
$( ".inner-switch" ).text( "ON" );
}
}
$( ".inner-switch" ).on("click", YourFunction);
使用上述方法,您的事件将像以前一样调用YourFunction
,但您也可以从控制台或代码中的其他位置调用它自己
您好,我建议使用id
代替class
并像这样使用document.getElementById
:
const darkModeLink = document.getElementById('darkModeLink');
darkModeLink.addEventListener('click',
() => {
const darkModeText = document.getElementById('darkModeText');
const darkClass = "dark";
if (document.body.classList.contains(darkClass)) {
document.body.classList.remove(darkClass);
darkModeText.innerText = "OFF";
}
else {
document.body.classList.add(darkClass);
darkModeText.innerText = "ON";
}
}
);
body {
font-family: Arial, Helvetica, 'Lato', sans-serif;
font-size: 1.125rem;
display: flex;
flex-direction: column;
margin: 0 auto;
padding: 0 0.9375rem;
}
small {
font-style: italic;
}
img {
max-width: 100%;
display: block;
align-self: center;
}
.switch {
align-self: flex-end;
color: #e6e6e6;
}
.inner-switch {
display: inline-block;
cursor: pointer;
border: 1px solid #555;
border-radius: 1.25rem;
width: 3.125rem;
text-align: center;
font-size: 1rem;
padding: 0.1875rem;
margin-left: 0.3125rem;
}
.dark,
.dark * {
background-color: black;
color: #e6e6e6;
border-color: #e6e6e6;
}
<a style="float:right" id="darkModeLink" class="switch"> Dark mode:<span class="inner-switch" id="darkModeText">OFF</span></a>
或者:
HTML
<a style="float:right" class="switch" onclick="switchMode()"> Dark mode:<span class="inner-switch">OFF</span></a>
JS:
function switchMode(){
if( $( "body" ).hasClass( "dark" )) {
$( "body" ).removeClass( "dark" );
$( ".inner-switch" ).text( "OFF" );
} else {
$( "body" ).addClass( "dark" );
$( ".inner-switch" ).text( "ON" );
}
}