const navigateToFormStep = (stepNumber) => {
document.querySelectorAll(".form-step").forEach((formStepElement) => {
formStepElement.classList.add("d-none");
});
document.querySelectorAll(".form-stepper-list").forEach((formStepHeader) => {
formStepHeader.classList.add("form-stepper-unfinished");
formStepHeader.classList.remove("form-stepper-active", "form-stepper-completed");
});
document.querySelector("#step-" + stepNumber).classList.remove("d-none");
};
document.querySelectorAll(".btn-navigate-form-step").forEach((formNavigationBtn) => {
formNavigationBtn.addEventListener("click", () => {
const stepNumber = parseInt(formNavigationBtn.getAttribute("step_number"));
navigateToFormStep(stepNumber);
});
});
我尝试自己重写它,我认为我犯了很多错误。虽然控制台不发誓。
function navigateToFormStep($stepNumber) {
$('.form-step').each(($formStepElement), function(){
$formStepElement.addClass('d-none')
})
$('.form-stepper-list').each(($formStepHeader), function(){
$formStepHeader.addClass('form-stepper-unfinished')
$formStepHeader.removeClass('form-stepper-unfinished')
$formStepHeader.removeClass('form-stepper-completed')
})
$('#step-' + $stepNumber).removeClass('d-none')
}
(function($){
$('.btn-navigate-form-step').each(($formNavigationBtn), function() {
$formNavigationBtn.on('click', function(){
var stepNumber = parseInt($formNavigationBtn.attr('step_number'))
navigateToFormStep($stepNumber)
})
})
})
而且代码现在不起作用。也许犯了一些严重的错误。我试图编辑每一行js代码并将其翻译成jquery。
与@Jean-Claude 相同,只有 10 行。
你误读了each()函数的描述,你认为 each() 有两个参数,但实际上一个参数是一个有两个参数的函数。
我添加了一些更多的优化,你可以使用它来访问元素,在用 jquery 包装它之后,代码如下: