我如何将jQuery转换为JavaScript

问题描述 投票:0回答:3

我制作了一个测试网站,希望将其作为辅助项目,但遇到了问题。我想将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感谢您的帮助!

javascript jquery
3个回答
0
投票

您的示例中的函数为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,但您也可以从控制台或代码中的其他位置调用它自己


1
投票

您好,我建议使用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>

0
投票

或者:

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" );
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.