기본적으로 하나의 기능이 클릭 한 항목에 따라 여러 요소에 개별적으로 작용하기를 원합니다.JS/jQuery - 요소 ID의 숫자를 함수의 변수로 사용하려면 어떻게해야합니까?
내가 같은 일을 이러한 기능의 3이 :
$("#morelink1, #pic1").click(function() {
var imgHeight = $(".pic").height();
var image = $('#more1').parent('.content').siblings(
'.image');
if ($('#more1').is(":visible")) {
$("#more1").slideUp(200, "linear");
image.height(contHeight);
showtext1();
$("#closemore1").hide();
} else {
$("#more1").slideDown(200, "linear");
image.height(imgHeight);
hidebutton1();
hidetext1();
}
});
당신이 볼 수 있듯이, 나는 "1"이 기능에서 모든 최종 작업을하고있는 ID의 이름 이 함수를 2와 3으로 복사했습니다.
복제하는 대신 #morelink1
에서 숫자를 추출하여 변수로 만들고 함수의 ID에 숫자를 추가해야합니다.
내가 좋아하는 뭔가를하고 싶습니다 :
var NUMBER = [get the number from the ID of the element that was clicked];
$("#morelink + NUMBER, #pic + NUMBER").click(function() {
나는 또한이 기능에 내장 된 기능을 가지고 - showtext1()
, hidebutton1()
및 hidetext1()
. 그것들은 변경된 번호로 복제됩니다. 이 함수 내에서 동일한 작업을 수행 할 수 있기를 원합니다. 그것은 showtext(NUMBER)
과 같은 것이겠습니까?
나는 주변을 둘러 보았고이를 수행 할 방법을 찾지 못했습니다.
숫자를 함수에 전달하는 등의 다른 방법이 있습니까?
응답 해 주셔서 감사합니다. 이것은 내가 필요한 것처럼 보입니다. 나는 "더 많은 링크를 읽는 것"과 같은 가치가 있기 때문에 모든 항목을 확장하지 않기를 바랍니다. 나는 또한 '$ ('. more '). each (function()'을 사용하고 싶은 것과 비슷한 코드를 발견했다. 더 나은 접근 방법이 될까? – AdamDallas
@AdamDallas : 클릭 핸들러에서 주어진 연산의 타겟은 클릭 된 요소에 상대적으로 DOM에서 식별 될 수 있습니다. 값을 파싱 할 필요가 없을 수도 있습니다. $ (this) .closest ('some common parent element' .find ('대상 요소')는 트릭을 수행합니다. 유지 보수가 더 쉬운 것은 당신에게 달려 있습니다. – David
@AdamDallas : 정확히 무엇을 더 잘 접근할까요? 일반적으로 루프에서 클릭 핸들러를 만들지는 않습니다. 클래스를 사용하여 요소를 식별 할 수 있습니다. 그러나 이것을 루프를 사용하는 관점에서 생각하지 마십시오. 선택기를 사용하여 클릭 할 수있는 요소인지 확인한 다음 해당 이벤트에 응답 할 단일 클릭 핸들러 만 사용하면됩니다. – David