Javascript 单击并再次单击后更改div内容
这是基本上打开和关闭div的jQuery代码:Javascript 单击并再次单击后更改div内容,javascript,jquery,wordpress,Javascript,Jquery,Wordpress,这是基本上打开和关闭div的jQuery代码: jQuery('#filter_werk').find('.raven-sortable').addClass('opened'); var toggle = document.getElementById('deknop'); var slider = document.querySelector('.raven-sortable'); toggle.addEventListener('click', toggleSlider, false)
jQuery('#filter_werk').find('.raven-sortable').addClass('opened');
var toggle = document.getElementById('deknop');
var slider = document.querySelector('.raven-sortable');
toggle.addEventListener('click', toggleSlider, false);
function toggleSlider(){
if (slider.classList.contains('opened')) {
slider.classList.remove('opened');
slider.classList.add('closed');
} else {
slider.classList.remove('closed');
slider.classList.add('opened');
}
}
</script>
我试图做的是将下面div的内容从FILTER+更改为FILTER-并在再次单击时再次更改为FILTER+
<div id="deknop">FILTER +</div>
这可以在不破坏当前jQuery代码的情况下完成吗?
谢谢大家! 据我所知,toggleSlider功能运行良好,请尝试:
function toggleSlider(){
if (slider.classList.contains('opened')) {
slider.classList.remove('opened');
slider.classList.add('closed');
toggle.innerHTML = "FILTER +";
} else {
slider.classList.remove('closed');
slider.classList.add('opened');
toggle.innerHTML = "FILTER -";
}
}
您可以向toggleSlider函数添加一些逻辑,根据当前的“FILTER+”或“FILTER-”更改deknop文本,如下所示:
function toggleSlider(){
$('#deknop').html($('#deknop').text() == 'FILTER +' ? 'FILTER -' : 'FILTER +');
if (slider.classList.contains('opened')) {
slider.classList.remove('opened');
slider.classList.add('closed');
} else {
slider.classList.remove('closed');
slider.classList.add('opened');
}
}
那么
如果必须使用这种jQuery风格,我会尝试将数据与视图分离。比如:
=> {
常量状态={
sliderOpen:没错,
};
常量$slider=$'.raven sortable';
常量$toggle=$'deknop';
const updateView==>{
如果state.sliderOpen{
$slider.addClass'opened'。removeClass'closed';
}否则{
$slider.addClass'closed'。removeClass'opened';
}
$toggle.text`FILTER${state.sliderOpen?'+':'-'}`;
};
const onToggleClick==>{
state.sliderOpen=!state.sliderOpen;
更新视图;
};
$toggle.clickonToggleClick;
更新视图;
};
乌鸦分类
这工作完美无瑕,感谢您花时间多教我一点。幸运的是,这不起作用,因为我在更改HTML中的任何内容时受到限制。谢谢你抽出时间。非常感谢Krzysztof!我没有在HTML中更改任何内容。我只选了JS: