2016-04-26 86 views
0

我有一個帶有2個按鈕的頁面。 這個頁面有這個div:用ajax填充div,jquery函數沒有被調用

<div id="parentDiv" style="display:none"> 
    <div id="subDiv"></div> 
</div> 

點擊一個按鈕填充用Ajax調用子股利和滑下父DIV。 ajax調用一個頁面,其中包含一個表單並調用一個JavaScript文件。表單正在爲每個按鈕填充不同的值。

在JavaScript文件的形式加載我有這樣的代碼:

$(function() { 
    alert('in'); 

    $('#close').on('click', function() { 
     $('#subDiv').empty(); 
     $('#parentDiv').slideUp(); 
    }); 
}); 

的問題,點擊按鈕1,我得到警報,然後我關閉該表格,然後點擊第二個按鈕,然後我沒有再次看到警報。

這是爲什麼?

+0

什麼是你的第二個按鈕? –

+0

提供了parentDiv點擊事件的代碼,觸發ajax – madalinivascu

+0

從我可以告訴父母點擊想要再次觸發ajax – madalinivascu

回答

0

您的警報在初始化時觸發(init)文件。您的關閉按鈕的代碼中沒有alert();

如果你喜歡你的關閉按鈕來觸發alert();那麼你必須明確地將它添加到代碼中。我將alert()更改爲console.log()(更適合調試)。如果有人提醒你可以改變它。這有意義嗎?

編輯
的原因,你的按鈕不起作用是因爲你加載的文件動態地。您需要綁定的事件,即documentbody或某些元素在DOM在加載你的情況,我建議bodydocument

$(function() { 
    console.log('file init'); 

    $(document).on('click', '#close', function() { 
     $('#subDiv').empty(); 
     $('#parentDiv').slideUp(); 

     console.log('I closed the form'); 
    }); 
}); 
+0

我不想讓關閉按鈕上的警報,我想檢查點擊第二個按鈕時再次調用jQuery代碼。 我把整個jQuery代碼移動到父頁面,現在一切正常。 –

+0

好吧,那就是我正在做的,放一個'console.log()'是你驗證你的函數是否被觸發(調試)的一種方法。它會在devtools控制檯中寫入一條消息。 @SigalZahavi –

+0

謝謝@Dejan,但它並不重要控制檯或警報,我想知道爲什麼不被調用,如果它被調用或不。 –