자바교수님께
본문
교수님, 배우는 학생입니다.
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
음 원하시는 코드 자체를 구글에서 검색후 비교해보면서 해답을 찾으면
이해되실듯하네요!
대부분 위 코드만 보고 말씀하신 문제점을 찾기 어렵습니다
눈으로 위 스크립트를 보고 머리속으로 동작을 생각하는 사람이 과연 몇명이나 있을까요..
위 스크립트 출처나, 동작하는 뷰를 볼수있게 링크를 주시는 방법도
좋은답변이 달리기에 유리할거예요.