JQuery - Show/hide 2 个 div,带有 1 个按钮并更改按钮的值
JQuery - Show/hide 2 divs with 1 button and change value of button
我试图做到这一点,当我点击一个按钮时,它会隐藏一个 div 并显示另一个,但同时更改按钮的值以反映 [= 的不同内容42=]s.
我已经能够创建这两个函数,但是当我将它们放在一起时它似乎崩溃了。
这是 show/hide 函数
Javascript :
function change() {
if (document.getElementById('tabs')) {
if (document.getElementById('tabs').style.display == 'none') {
document.getElementById('tabs').style.display = 'block';
document.getElementById('parkList').style.display = 'none';}
else {
document.getElementById('tabs').style.display = 'none';
document.getElementById('parkList').style.display = 'block';}
}
}
这里是值变化函数
Javascript:
function change( el ) {
if ( el.value === "div1" )
el.value = "div2";
else
el.value = "div1";
}
这里是 HTML 两者
HTML:
<div id="tabs">Div 1</div>
<div id="parkList">Div 2</div>
<input type="submit" value="div1" onclick="return change(this);"/>
我有点新手,所以任何帮助都会很棒。
问题似乎是2个函数同名。
当您调用 change()
以显示 block/none 元素时,最有可能发生的是您用 change(element)
覆盖
例如将第二个函数名称更改为 changeValue(el)
并且它有效
function changeValue( el ) {
if ( el.value === "div1" )
el.value = "div2";
else
el.value = "div1";
}
<input type="submit" value="div1" onclick="return changeValue(this);"/>
您似乎有 2 个同名函数。
function change()
尝试重命名其中之一。
你可以尝试用JQuery
toogle()函数来切换匹配元素的显示属性
- 默认
parkList
div 是隐藏的。
- 在
submit
按钮上添加点击侦听器。
- 在点击提交按钮时切换 属性 两个 div 的显示
- 通过可见div的内容设置提交按钮的值。
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="tabs">Div 1</div>
<div id="parkList" style="display:none">Div 2</div>
<input type="submit" value="Div 1"/>
<script>
var submit = $('input[type="submit"]');
var tabs = $('#tabs');
var parkList = $('#parkList');
submit.click(function(e){
tabs.toggle();
parkList.toggle();
if(tabs.css('display') == 'none'){
submit.val(parkList.text());
}else{
submit.val(tabs.text());
}
});
</script>
您可以为此使用 jquery,请参阅下面的代码以了解单击按钮时的 show/hide div:
无需编写两个函数。只需在单击按钮时调用以下函数。
function changeValue(){
if($(this).text() === 'div1'){
$(this).text('div2');
$('div2').hide();
$('div1').show();
}else{
$(this).text('div1');
$('div1').hide();
$('div2').show();
}
}
抱歉,如果我没弄对,你在哪里调用 show/hide 函数 change()?
正在为按钮命名。您需要为样式分配事件侦听器或调用函数,使用 jquery 如下:
$('#tabs').show();
$('#parkList').hide();
并且您需要更改两个函数之一的方法名称'change'。
默认情况下,您可以显示 none 秒 div
<input type="submit" value="tabs" onclick="return change(this);"/>
function change( el ) {
if ( el.value === "tabs" )
{
el.value = "parkList";
document.getElementById('tabs').style.display = 'none';
document.getElementById('parkList').style.display = 'block';}
}
else
{
el.value = "tabs";
document.getElementById('tabs').style.display = 'block';
document.getElementById('parkList').style.display = 'none';}
}
}
我试图做到这一点,当我点击一个按钮时,它会隐藏一个 div 并显示另一个,但同时更改按钮的值以反映 [= 的不同内容42=]s.
我已经能够创建这两个函数,但是当我将它们放在一起时它似乎崩溃了。
这是 show/hide 函数
Javascript :
function change() {
if (document.getElementById('tabs')) {
if (document.getElementById('tabs').style.display == 'none') {
document.getElementById('tabs').style.display = 'block';
document.getElementById('parkList').style.display = 'none';}
else {
document.getElementById('tabs').style.display = 'none';
document.getElementById('parkList').style.display = 'block';}
}
}
这里是值变化函数
Javascript:
function change( el ) {
if ( el.value === "div1" )
el.value = "div2";
else
el.value = "div1";
}
这里是 HTML 两者
HTML:
<div id="tabs">Div 1</div>
<div id="parkList">Div 2</div>
<input type="submit" value="div1" onclick="return change(this);"/>
我有点新手,所以任何帮助都会很棒。
问题似乎是2个函数同名。
当您调用 change()
以显示 block/none 元素时,最有可能发生的是您用 change(element)
例如将第二个函数名称更改为 changeValue(el)
并且它有效
function changeValue( el ) {
if ( el.value === "div1" )
el.value = "div2";
else
el.value = "div1";
}
<input type="submit" value="div1" onclick="return changeValue(this);"/>
您似乎有 2 个同名函数。
function change()
尝试重命名其中之一。
你可以尝试用JQuery
toogle()函数来切换匹配元素的显示属性
- 默认
parkList
div 是隐藏的。 - 在
submit
按钮上添加点击侦听器。 - 在点击提交按钮时切换 属性 两个 div 的显示
- 通过可见div的内容设置提交按钮的值。
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="tabs">Div 1</div>
<div id="parkList" style="display:none">Div 2</div>
<input type="submit" value="Div 1"/>
<script>
var submit = $('input[type="submit"]');
var tabs = $('#tabs');
var parkList = $('#parkList');
submit.click(function(e){
tabs.toggle();
parkList.toggle();
if(tabs.css('display') == 'none'){
submit.val(parkList.text());
}else{
submit.val(tabs.text());
}
});
</script>
您可以为此使用 jquery,请参阅下面的代码以了解单击按钮时的 show/hide div: 无需编写两个函数。只需在单击按钮时调用以下函数。
function changeValue(){
if($(this).text() === 'div1'){
$(this).text('div2');
$('div2').hide();
$('div1').show();
}else{
$(this).text('div1');
$('div1').hide();
$('div2').show();
}
}
抱歉,如果我没弄对,你在哪里调用 show/hide 函数 change()?
正在为按钮命名。您需要为样式分配事件侦听器或调用函数,使用 jquery 如下:
$('#tabs').show();
$('#parkList').hide();
并且您需要更改两个函数之一的方法名称'change'。
默认情况下,您可以显示 none 秒 div
<input type="submit" value="tabs" onclick="return change(this);"/>
function change( el ) {
if ( el.value === "tabs" )
{
el.value = "parkList";
document.getElementById('tabs').style.display = 'none';
document.getElementById('parkList').style.display = 'block';}
}
else
{
el.value = "tabs";
document.getElementById('tabs').style.display = 'block';
document.getElementById('parkList').style.display = 'none';}
}
}