2014-09-10 40 views
1

以下是觸發器和目標的總體佈局。無法在發射後自定義JS觸發器選擇目標

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

在用戶輸入搜索詞時,SearchResult所DIV被填充像這樣:

<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變量不適當地針對sibiling div有關。任何想法?

回答

1

searchtarget變量設置不正確,是的。它應該是:

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

(內.searchResults搜索裏面ulli)。

Fiddle

+0

謝謝,這看起來不錯。我只是用更正確的表格和div關係更新了問題,因爲由於某種原因,此答案對我的網站無效。我會用小提琴來測試它,看看它是否有所作爲。 – Presto 2014-09-10 20:49:35

+0

以及你的小提琴仍然適用於我的更新..不知道爲什麼我仍然在網站上遇到麻煩。 – Presto 2014-09-10 20:51:30

+0

@Presto你用'$(document).ready'包裝了你的代碼嗎?我忘了在小提琴中提到這一刻。看看[更新的](http://jsfiddle.net/5n2f5ksh/1/)。 – Regent 2014-09-10 20:57:37