2014-02-07 27 views
0

說我想隱藏一個帶有id="foobar"的div,但foobar不存在,只有在用戶單擊按鈕並進行ajax調用之後,纔會填充div進入DOM。如何將jquery函數應用於在ajax調用之前還存在的div

如何編寫一個div運行後運行的函數?函數不能由ajax調用。它必須在通話之前存在。

我才知道,這樣的事情可能會有所幫助:

$(document).ready(function() { 
    $(document).on('click', '#futurebutton', function() { 
     alert("You clicked the future button"); 
    }); 

但這似乎只是新的按鈕被點擊的工作,我需要的是具有功能運行哪些一旦DIV開始存在。

如此的相似,$(document).on("COMES INTO EXISTENCE" , '#newdiv', function() ...

感謝的東西!

+0

沒有爲沒有事件。 – epascarello

+0

[我如何確定動態創建的DOM元素是否已添加到DOM?](http://stackoverflow.com/questions/220188/how-can-i-determine-ifa-a-dynamically -created-dom-element-has-added-to-the-d) – epascarello

+2

爲什麼你不能在ajax成功回調中做到這一點?大概你在某個時候創建​​了div,所以你知道什麼時候需要隱藏它嗎?我想你可以試試這個,如果你不需要支持舊的瀏覽器:https://developer.mozilla.org/en-US/docs/Web/API/MutationObserver – mcbex

回答

0

您應該創建函數,然後在創建元素時將函數名稱添加到元素的onclick屬性中。

//<div id="futureButton" onclick="onClickFunc"></div> 
function onClickFunc(e){ alert("You clicked the future button"); } 
1

如果你想用一個按鈕隱藏在div它已被填充後,你可以將監聽器添加到已經存在的父元素。

$('.parent').on('click','#foobar',removeFoobarFunction); 

如果您需要立即刪除div,當它被填充時,那麼您應該使用ajax成功回調,如提到的mcbex。

閱讀上事件委派如果你還沒有:

https://learn.jquery.com/events/event-delegation/

相關問題