테스트 사이트 - 개발 중인 베타 버전입니다

자바교수님께 채택완료

머시기거시기 6년 전 조회 1,981

교수님, 배우는 학생입니다.

 

01버튼   02버튼   03버튼   04버튼~~ 이런식으로 있는데

 

아래는 버튼을 누르면 패널이 열리고 닫히는

자바코드입니다.

 

01버튼을 누르고 다시 02버튼을 누르면 

01누르고 열린 패널이 02 클릭 때문에 닫혀버립니다.

 

저는 01누르고 열린 상태에서 이 버튼들 바깥 영역을 클릭하면 닫히지만

02버튼을 누르면 닫히지 않는 상태가 되게 하고 싶습니다.

 

연이어 01 03 04버튼을 누를 수 있는데...

단지 버튼을 누르면 열렸다 닫혔다 하기 때문에 많이 불편합니다. 유유

 

 

 

// This is just a sample script. Paste your real code (javascript or HTML) here. if ('this_is' == /an_example/) {     of_beautifier(); } else {     var a = b ? (c % d) : e[f]; }(function(e) {     "use strict";

    function r(e, r) {         var i = e.outerWidth(true),             s = {},             o = {};         if (e.is(":visible") || n) {             return         }         n = true;         e.addClass("ps-active-panel").css({             position: "fixed",             top: 0,             height: "100%",             "z-index": 999999         });         e.data(r);         switch (r.side) {             case "left":                 e.css({                     left: "-" + i + "px",                     right: "auto"                 });                 s["margin-left"] = "+=" + i;                 o.left = "+=" + i;                 break;             case "right":                 e.css({                     left: "auto",                     right: "-" + i + "px"                 });                 s["margin-left"] = "-=" + i;                 o.right = "+=" + i;                 break         }         t.animate(s, r.duration);         e.show().animate(o, r.duration, function() {             n = false         })     }     var t = e("body"),         n = false;     e.panelslider = function(t, n) {         var i = e(".ps-active-panel");         var s = {             side: "left",             duration: 200,             clickClose: true         };         n = e.extend({}, s, n);         if (i.is(":visible") && i[0] != t[0]) {             e.panelslider.close(function() {                 r(t, n)             })         } else if (!i.length || i.is(":hidden")) {             r(t, n)         }     };     e.panelslider.close = function(r) {         var i = e(".ps-active-panel"),             s = i.data("duration"),             o = i.outerWidth(true),             u = {},             a = {};         if (!i.length || i.is(":hidden") || n) {             return         }         n = true;         switch (i.data("side")) {             case "left":                 u["margin-left"] = "-=" + o;                 a.left = "-=" + o;                 break;             case "right":                 u["margin-left"] = "+=" + o;                 a.right = "-=" + o;                 break         }         i.animate(a, s);         t.animate(u, s, function() {             i.hide();             i.removeClass("ps-active-panel");             n = false;             if (r) {                 r()             }         })     };     e(document).bind("click keyup", function(t) {         var n = e(".ps-active-panel");         if (t.type == "keyup" && t.keyCode != 27) {             return         }         if (n.is(":visible") && n.data("clickClose")) {             e.panelslider.close()         }     });     e(document).on("click", ".ps-active-panel", function(e) {         e.stopPropagation()     });     e.fn.panelslider = function(t) {         this.click(function(n) {             var r = e(".ps-active-panel"),                 i = e(this.getAttribute("href"));             if (r.is(":visible") && i[0] == r[0]) {                 e.panelslider.close()             } else {                 e.panelslider(i, t)             }             n.preventDefault();             n.stopPropagation()         });         return this     } })(jQuery)

댓글을 작성하려면 로그인이 필요합니다.

답변 2개

채택된 답변
+20 포인트

음 원하시는 코드 자체를 구글에서 검색후 비교해보면서 해답을 찾으면

 

이해되실듯하네요!

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

머시기거시기
6년 전
감사합니다. 해결했습니다.

댓글을 작성하려면 로그인이 필요합니다.

대부분  위 코드만 보고 말씀하신 문제점을 찾기 어렵습니다

눈으로 위 스크립트를 보고 머리속으로 동작을 생각하는 사람이 과연 몇명이나 있을까요..

 

위 스크립트 출처나, 동작하는 뷰를 볼수있게 링크를 주시는 방법도

좋은답변이 달리기에 유리할거예요.

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

머시기거시기
6년 전
감사합니다~

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인