2014-09-10 9 views
1

다음은 트리거와 대상의 일반적인 레이아웃입니다. 사용자가 검색어를 입력 한 후사용자 정의 JS 트리거를 실행 한 후 대상을 선택하는 데 문제가 있습니다.

<div id="search"> 
    <form id="searchForm"></form> 
</div> 
<div class="searchResults"></div> 

의의 SearchResult의 사업부는과 같이 채워됩니다 :

<div class="searchResults"> 

<ul> 

    <li>Result One</li> 
    <li>Result Two</li> 
    <li>Result Three</li> 

</ul> 

</div> 

가 트리거과 같이 설정 : 다음이 만든

$('#searchForm').trigger('search.categories.updated'); 

사용자가 동적으로 생성 된 검색 결과 중 하나를 클릭하면 경고를 발생시키는 간단한 스크립트 :

$(document).on('search.categories.updated', function(e){ 

       var target = $(e.target), 

       searchtarget = target.find('.searchResults + ul li a'); 


       searchtarget.click(function() { 

        alert("yay it works!"); 

        }); 

      }); 

불행히도 이것은 작동하지 않습니다. 나는 searchtarget 변수가 부적절한 변수 인 div을 대상으로해야한다고 생각합니다. 어떤 이상입니까?

답변

1

searchtarget 변수가 잘못 설정되었습니다. 예. 이 같아야

searchtarget = $('.searchResults ul li'); 

(.searchResults 내부 ulli 내부를 검색).

Fiddle.

+0

감사합니다. 나는이 정답이 어떤 이유로 내 사이트에서 작동하지 않기 때문에 더 정확한 양식과 div 관계로 질문을 업데이트했습니다. 나는 그것이 차이를 만드는 지 알아보기 위해 바이올린으로 테스트 할 것입니다. – Presto

+0

잘 당신의 바이올린은 여전히 ​​내 업데이 트와 함께 작동 .. 확실하지 왜 아직도 사이트에 문제가 있습니다. – Presto

+0

@Presto'$ (document) .ready'로 코드를 래핑 했습니까? 나는이 순간을 바이올린에 언급하는 것을 잊었다. [업데이트 된 버전] (http://jsfiddle.net/5n2f5ksh/1/)을 살펴보십시오. – Regent