사용자가 클릭 한 a
에 i
요소의 위치를 보유한 class
을 저장했습니다. a
태그를 클릭하면 attr
값을 가져와 i
요소 태그에 클래스로 추가하려고합니다. 나는 아래에 예시 된대로 그것을 시도했다. 그러나 나는 많은 코드에 이것을 느낀다. 가능한 가장 짧은 시간에 어떻게 할 수 있습니까?어떻게 이것이 가장 짧은 방법으로 할 수 있습니까?
<i id="pps_ToggledIcon" class="pisp_p pISImage"></i>
<li class="privListItem checkedList selectedList li_public">
<a href="/p" class="psLink" title="pisp_p">
<span class="privLabel">PP</span>
</a>
</li>
<li class="privListItem checkedList selectedList li_public">
<a href="/f" class="psLink" title="pisp_f">
<span class="privLabel">F</span>
</a>
</li>
<li class="privListItem checkedList selectedList li_public">
<a href="/o" class="psLink" title="pisp_o">
<span class="privLabel">O</span>
</a>
</li>
다음은 JS에게 있습니다
$(".xyp li a").on("click", function(e) {
var pIcnSltd = $(this).attr("title");
var pTIcn = $("#pps_ToggledIcon");
if (pTIcn.hasClass("pisp_f") || pTIcn.hasClass("pisp_o")) {
pTIcn.removeClass("pisp_f");
pTIcn.removeClass("pisp_o");
pTIcn.addClass("pisp_p");
}
else if (pTIcn.hasClass("pisp_p") || pTIcn.hasClass("pisp_o")) {
pTIcn.removeClass("pisp_p");
pTIcn.removeClass("pisp_o");
pTIcn.addClass("pisp_f");
}
else if (pTIcn.hasClass("pisp_p") || pTIcn.hasClass("pisp_f")) {
pTIcn.removeClass("pisp_p");
pTIcn.removeClass("pisp_f");
pTIcn.addClass("pisp_f");
}
});
당신은 http://codereview.stackexchange.com을 보았습니까? 이런 종류의 질문에는 좋은 점이 있습니다. 나는 안경을 낀 채 똑똑한 남자가 camomille tea 한 잔을보고 코드를 검토한다고 상상해 봅니다. – BumbleB2na
클래스를 추가하는 대신'title' 대신 HTML5'data-'속성을 사용해야하고, 또한'.data()'를 사용해야하는 것처럼 보입니다. 그것은 그것을 한 줄로 떨어 뜨릴 것입니다. – Jon
마지막''pTIcn.addClass ("pisp_f");''pTIcn.addClass ("pisp_o");'가 아니어야합니까? – Vlad