こんにちはdivを開いて閉じるための次の2つのJavaScript関数があります。
<script>
function show() {
if(document.getElementById('benefits').style.display=='none') {
document.getElementById('benefits').style.display='block';
}
}
</script>
<script>
function close() {
if(document.getElementById('benefits').style.display=='block') {
document.getElementById('benefits').style.display='none';
}
}
</script>
これがhtmlです。
<div id="opener"><a href="#1" name="1" onclick=show()>click here</a></div>
<div id="benefits" style="display:none;">
some input in here plus the close button
<div id="upbutton"><a onclick=close()></a></div>
</div>
何らかの理由で、show関数は本来の動作をしますが、閉じるボタンは機能しません。だから私を助けてくれる人がいたら本当に感謝します。どうもありがとう。
<script>
function show() {
if(document.getElementById('benefits').style.display=='none') {
document.getElementById('benefits').style.display='block';
}
return false;
}
function hide() {
if(document.getElementById('benefits').style.display=='block') {
document.getElementById('benefits').style.display='none';
}
return false;
}
</script>
<div id="opener"><a href="#1" name="1" onclick="return show();">click here</a></div>
<div id="benefits" style="display:none;">some input in here plus the close button
<div id="upbutton"><a onclick="return hide();">click here</a></div>
</div>
私は通常、クラスでこれを行います。これは、ブラウザにすべてのスタイルを再評価させるように思われます。
.hiddendiv {display:none;}
.visiblediv {display:block;}
次に使用します。
<script>
function show() {
document.getElementById('benefits').className='visiblediv';
}
function close() {
document.getElementById('benefits').className='hiddendiv';
}
</script>
「className」の大文字小文字に注意してください。
JQueryの美しさにより、次のことが可能になります。
$(function()
{
var benefits = $('#benefits');
// this is the show function
$('a[name=1]').click(function()
{
benefits.show();
});
// this is the hide function
$('a', benefits).click(function()
{
benefits.hide();
});
});
または、次のように1つのボタンで表示を切り替えることもできます。
$(function()
{
// this is the show and hide function, all in 1!
$('a[name=1]').click(function()
{
$('#benefits').toggle();
});
});
内部のリンクをクリック可能にする必要があります。つまり、コンテンツにhrefが必要です。また、close()はウィンドウの組み込み関数であるため、競合を避けるために関数の名前を変更する必要があります。
<div id="upbutton"><a href="#" onclick="close2()">click to close</a></div>
また、リンクではなく実際の「ボタン」が必要な場合は、<input type="button"/>
または<button/>
。
たとえば、閉じる関数の名前を「hide」に変更すると、機能します。
function hide() {
if(document.getElementById('benefits').style.display=='block') {
document.getElementById('benefits').style.display='none';
}
}
これをチェックして:
<div id="benefits" style="display:none;">some input in here plus the close button
<div id="upbutton"><a onclick="close(); return false;"></a></div>
</div>
Closeは、ある種の予約語のようです(window.closeを参照している可能性があります)。問題を別のものに変更すると、問題が解決するようです。
このような[jQueryのように]で2つを圧縮できます。
function toggleMyDiv() {
if (document.getElementById("myDiv").style.display=="block"){
document.getElementById("myDiv").style.display="none"
}
else{
document.getElementById("myDiv").style.display="block";
}
}
..2つのボタンで同じ機能を使用するか、通常は両方の機能のページで使用します。