2012-11-21 65 views
1

我試圖創建一個按鈕,它會隱藏它所包含的div。此div(包括按鈕)的內容在瀏覽頁面時很可能會被破壞並重新創建幾次,我們建議使用「事件委託」來定位按鈕,因爲按鈕本身實際調用的函數在其被銷燬和重新創建後失敗。on('點擊')不起作用?

有人建議我使用的語法如下:

$('#container').on('click', '#button', function() { 
    $('#div').fadeOut(); 
}); 

這不是工作,出於某種原因。我創建了this jsfiddle,其中它也不工作。我究竟做錯了什麼?謝謝!

編輯:好的,顯然我是啞巴,而且沒有使用的jsfiddle權。一旦我配置它使用jQuery,它工作正常,但是這種方法不適用於我的實際代碼。

HTML:

<div class="cycle-slideshow" id="slideshow"> 
    <div class="cycle-overlay custom" id="info"> 
    <img src="close_pane.png" class="fadein close_pane button"> 
    </div> 
</div> 

的jQuery:

$('#slideshow').on('click', '.close_button', function() { 
    $('#info').fadeOut('slow'); 
}); 

這看起來功能相同於我,卻是行不通的。任何想法爲什麼?

+7

規定的框架沒有與.close_pane類元素在左側的jQuery而不是MooTools,它應該工作..在這裏工作的小提琴TP:如果你使用jQuery,而不是Mootools的 –

+0

完全工作 - 我已經更新了它:http://jsfiddle.net/QgGsP/3/ –

+1

您沒有選擇的jQuery在你的jsfiddle加載//jsfiddle.net/sushanth009/QgGsP/1/ – kinakuta

回答

3

看起來你在你的HTML

$('#slideshow').on('click', '.close_button', 

應該是

$('#slideshow').on('click', '.close_pane', 
+0

*把雙手抱着頭*顯然我很累,謝謝 – NaOH

+1

@NaOH ..很高興能有幫助。: ) –

2

這是所有好:http://jsfiddle.net/pulkitm/QgGsP/4/

你只是錯過了選擇左側面板上的jQuery框架!

的代碼只是正常工作:

$(function() { 
    $('#outer').on('click', '#close', function() { 
     $('#inner').fadeOut(); 
    }); 
});​