答えて
このような何か:ここ
//define some global js variable, for storing the state
var currentStateOpened = true;
function openclose() {
//check if state is true or false
if(currentStateOpened) { //if state is open then close
allToggle(false);
currentStateOpened = false; // set the global state to false
}
else {
allToggle(true);
currentStateOpened = true; // set the global state to true
}
}
//And
<a href="#" onclick="openclose(); return false;">Open/Close</a>
これは問題ありませんが、アンカータグが1つあればガイドできますOpen/Close – ronquiq
アンカータグを追加するときと同じ方法で渡すことができます..? –
私は1つのアンカータグでのみ必要とすることを意味します。ここでは、1つのアンカータグに対してopenを呼び出して、別のアンカータグで閉じるようにしています。そうでないのは、その関数が一つのアンカーに対して機能するはずではないということです(つまり、「開く/閉じる」を最初にクリックすると、それを閉じる必要があります)。 – ronquiq
:
function all_opened()
{
allToggle(true);
}
function all_closed()
{
allToggle(false);
}
私は function openclose()
そして、私のHTMLコードのような単一の関数で呼び出さ両方の機能を必要としますブール値を格納するフラグをコードに格納して、関数自体にチェックインすることができます:
flag = false;
function allToggle(){
flag = !flag ? false : true;
//rest of the code
}
そして、私はこれを一つのアンカータグで呼び出す方法を教えてもらえますか – ronquiq
は、完全な、クロスブラウザ、および拡張可能なオプションです。説明のコード内のコメントを見てください。あなたが好きなプロジェクトでこれを自由に使用してください。
CSS:
<style type="text/css">
a {
text-decoration: none;
outline: none;
}
div.TogWrap {
width: 400px;
padding: 12px;
}
/* classes .on and .off are for the links */
.off {
border: 1px solid #bebebe;
padding: 7px 8px;
background: #df7623;
color: #fff;
}
.on {
border: 1px solid #bebebe;
padding: 7px 8px;
background: #bf7623;
color: #fff;
}
/* classes .hide and .show are used for the content */
.hide {
display: none;
}
.show {
display: block;
margin-top: 8px;
border: 1px solid #bebebe;
padding: 16px 10px 10px 10px;
background: #ededed;
}
</style>
はJavaScript:
<script type="text/javascript">
/* Cross-Browser Event functions (required) */
function addEvent (eventObj, event, codeToExecute) {
if (eventObj.addEventListener) {
eventObj.addEventListener(event, codeToExecute, false);
return true;
} else if (eventObj.attachEvent) {
event = "on" + event;
eventObj.attachEvent(event, codeToExecute);
} else {
eventObj['on' + event] = codeToExecute;
}
}
function cancelEvent(event) {
if (event.preventDefault) {
event.preventDefault();
event.stopPropagation();
} else {
event.returnValue = false;
event.cancelBubble = true;
}
}
/* The function that does the hide/show */
function toggleIt (thisEl, thisContent) {
var el = document.getElementById(thisEl);
var content = document.getElementById(thisContent);
content.className = "hide"; //initially hide the contents
el.className = "off"; //and set the links class to off (optional)
var toggle = function (event) { //capture the event that was triggered
switch (event.type) { //check if it was a click event
case 'click': //if click
content.className = content.className === 'hide' ? 'show' : 'hide'; //self explanatory
el.className = content.className === 'hide' ? 'off' : 'on'; //self explanatory (optional)
break;
}
cancelEvent(event); //prevent the link from following the href attribute
};
addEvent (el, 'click', toggle); //onclick call the toggle function
}
/* Set up function */
function initToggles() {
//Array of IDs for the links that are clicked - add as many as you need
var allTriggers = [
'togTrigger1',
'togTrigger2'
];
//Array of IDs for the content that you want to hide/show - add as many as you need
var allContents = [
'content1',
'content2'
];
var i = 0, arrLen = allTriggers.length;
for (i; i < arrLen; i += 1) {
toggleIt(allTriggers[i], allContents[i]);
}
}
/* the same as window.onload */
addEvent (window, 'load', initToggles);
</script>
HTML:
<!--You can add as many of these as you need. Just follow the same pattern as I have below -->
<div class="TogWrap">
<a href="#" id="togTrigger1" class="">Open it/Close it</a>
<p id ="content1" class="togContent">
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Mauris magna.
Suspendisse accumsan elit non tellus. Curabitur eros justo, malesuada
convallis, sagittis vitae, convallis sit amet, lectus.
</p>
</div>
<p> </p>
<!--Here is another one following the same pattern-->
<div class="TogWrap">
<a href="#" id="togTrigger2" class="">Open it/Close it</a>
<p id ="content2" class="togContent">
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Mauris magna.
Suspendisse accumsan elit non tellus. Curabitur eros justo, malesuada
convallis, sagittis vitae, convallis sit amet, lectus.
</p>
</div>
私はそれが役に立てば幸い! :)
- 1. 私はhtmlファイル内のJavaScript機能を持っているJavaScriptの機能location.search正規表現のヘルプ
- 2. パス私はこのような二つの機能を持っている
- 3. 私は以下のコードを持っているのJavascript機能
- 4. コアダンプエラー私は機能を持っている機能から
- 5. JSのsetIntervalは、私は、次のJS機能を持っている
- 6. は、私はExcelの列にファイルを持っている機能
- 7. 機能は、私はとてもとしての機能を持っている
- 8. Javascriptの機能は、私は次のスクリプトを持って
- 9. R - 私はこの1と同様の機能を持っている機能
- 10. 私は二つのリスト、イベントとの1、アクション(機能)を持つものを持っているイベント
- 11. は、私は大体この機能を持っている機能
- 12. SQL - 機能 - 私は、SQL Serverの機能を持っているテーブル
- 13. 同じ機能は、私は、ニューラルネットワークについての簡単な機能を持っているMatlabの.NETアセンブリ
- 14. は、私はJSXは、このようなファイル持っている二つの機能
- 15. は、私は機能を持つC++プロジェクトを持っているC++での二つの機能を呼び出すとC#
- 16. のNode.js/ES6 - 私は、次の機能を持たせて機能
- 17. 私はこのコードを持っているこの機能
- 18. は、私は次のコードを持っている機能
- 19. は、私はこの機能を持っている
- 20. は、私は、以下の機能を持っているHTTPステータスコード
- 21. は、私はこの機能を持っているddply
- 22. カントは、私はこの機能を持っているベクトル
- 23. は、私はこの機能を持っている文字列
- 24. は、私は次の例持つ機能
- 25. 印刷私はこの機能を持っている
- 26. は、私が機能を持っているデータのイテレータ
- 27. 私はこのような機能を持っているイテレータ
- 28. 私はココアで、この問題を持っている機能
- 29. 私はこの機能を持っている拡張
- 30. jQueryのメソッドは、私が機能を持っている
親切にallToggle()関数をexplaingします。 – vkantiya