2012-11-26 3 views
0

동일한 기능을 가진 두 개의 버튼이있는 무언가를 프로그래밍하고 있습니다.사이에있는 요소로 이전 요소 얻기

첫 번째 단추의 모든 정보를 두 번째 단추에 넣는 대신 두 번째 단추에도 짝수 처리기를 추가하여 첫 번째 단추를 클릭하면 동일한 코드가 실행됩니다.

가능한 경우 jQuery 형식으로 제안을받을 수 있도록 jQuery 프레임 워크를 사용하고 있습니다.

이 내가 이벤트 처리기에 사용 된 코드 : 모든 기능을 가진 버튼이 그렇게 작동하지 않습니다 두 번째에 배치하기 위해 정보를 얻고, PHP 클래스에 의해 생성된다

$(document).on('click', '.enlargeComments', function(){ 

    $(this).prev('.commentsLink').trigger('click'); 

}); 

는, 또한 그것을 식별 클래스로 지정하는 것은 정직하기에 이상하지 않은 클래스를 추가로 변경하는 것을 의미합니다.

그러나 이제는이 두 가지와 내 이벤트 처리기 사이에 오는 또 다른 버튼이 있습니다 ... 나는 원래의 작동 방식을 얻으려는 해결책이 필요하므로 현재 작동하는 방식을 변경하지 마십시오.

미리 감사드립니다.

답변

2

이 작업을 수행 할 .prevUntil(sel).prev()를 사용할 수 있습니다

$(document).on('click', '.enlargeComments', function(){ 

    $(this).prevUntil('.commentsLink').prev().trigger('click'); 

}); 
+0

감사합니다, 그것은 추가 버튼을 사방에 표시되지 않습니다 –

1

당신이 할 것 이유는 무엇입니까? 일

$(document).on('click', '.commentsLink, .enlargeComments', function(){ 

    //click stuff 

}); 
+0

안녕 날 수 있습니다 때 대답을 받아 들일 것입니다 : 그들은 어쨌든 같은 일을하고되기 때문에

그냥 두 요소에 동일한 핸들러를 첨부 따라서 나타나는 섹션에 대해 별도의 이벤트 처리기를 갖는 것이 좋습니다. –

+0

@ AndréFigueira는 ** 전혀 ** 사실이 아닙니다. 어디서나 이벤트를 위임하는 것입니다. – Neal

+0

설명에서 설명했듯이 첫 번째 단추, 설명 항목에는로드되는 내용에 영향을주는 특성이 포함되어 있습니다.이 단추는 클래스에서 생성되고 다른 단추는 복사되지 않도록 제안 된 방식으로 작동하도록 이벤트 처리기를 가져옵니다. 내가 말했듯이 우리가 원하는 것을 다른 버튼에 데이터도 있습니다. –