2011-04-27 18 views
0

我試圖將一個單擊事件處理程序綁定到一些動態創建的元素上。 但是,該功能已經得到執行,只需加載頁面。 我也嘗試過那種也有不需要的習慣的livequery插件和.delegate。函數在jQuery中使用.live時無意中執行

$(".pika_thumb").live("click" ,(function() { 
    $("#video").hide(); 
    $(".pika_main").show(); 
})); 

如何防止我的函數在其他事件上執行而不是單擊指定的元素?

+1

函數週圍的括號不需要,但不應引起所述的問題。我會想象你的頁面上還有其他內容會導致這個問題。嘗試在此點擊功能中放置警報,看看它是否顯示在載入中。 – 2011-04-27 13:57:35

+0

我有一個內部警報,併發生了火災。 – henning 2011-04-28 08:49:57

+0

括號似乎實際上會導致函數執行。我應該仔細看看示例代碼。 – henning 2011-04-28 08:59:00

回答

0

唯一明顯的錯誤是來自function() { }定義的括號。

但是,這不會導致立即調用,除非您也跟蹤()參數列表。你的代碼片段是否完整?

0

語法:

$(".pika_thumb").live("click" , function() { 
    $("#video").hide(); 
    $(".pika_main").show(); 
}); 

檢查,如果你沒有別的東西觸發你的.pika_thumb類的點擊。

0
從支架

除此之外,我最後的工作代碼爲:

$("#gallery").delegate(".pika_thumb", "mousedown" , function() { 
    $(".video-js").get(0).pause(); 
    $("#video").hide(); 
    $(".pika_main").show(); 
}); 

謝謝大家!