簡體   English   中英

jQuery在AJAX加載的DIV中不起作用

[英]jQuery not working in AJAX loaded DIVs

在文檔的標題中,我加載了jQuery.js以及blockUI jQuery插件。

然后,在PHP中,我使用常規AJAX將其他PHP內容加載到DIV中。 在原始的PHP中,jQuery和blockUI插件可以正常工作,但是在任何由ajax加載的div中,jQuery和blockUI都絕對不起作用。 沒有控制台錯誤,沒有警告-什么都沒有。

我是jQuery的初學者,而我在該主題上發現的其他文章都沒有讓我超越解決此問題的能力,因此,我正在幫助其他人。 在下面的代碼中,您會看到我在live()處刺了一下...

這是我的PHP文件的頂部,該文件已加載到DIV中

    <script type="text/javascript"> 
    $(document).ready(function() { 

        $('#crazy').live('click',function() { 
            $.blockUI({ message: $('#question'), css: { width: '275px' } }); 
        }); 

        $('#yes').live('click',function() { 
            // update the block message 
            $.blockUI({ message: "<h1>Remote call in progress...</h1>" }); 

            $.ajax({ 
                url: 'wait.php', 
                cache: false, 
                complete: function() { 
                    // unblock when remote call returns 
                    $.unblockUI(); 
                } 
            }); 
        }); 

        $('#no').live('click',function() { 
            $.unblockUI(); 
            return false; 
        }); 

    }); 
</script> 

這是該PHP文件中的HTML(已加載到DIV中):

<input id="crazy" type="submit" value="Show Dialog" /> 

<div id="question" style="display:none; cursor: default"> 
        <h1>Would you like to contine?.</h1> 
        <input type="button" id="yes" value="Yes" /> 
        <input type="button" id="no" value="No" /> 
</div> 

在ADOM調用完成之前,加載DOM時將加載文檔就緒功能。 因此,它僅將.live()調用應用於AJAX調用之前存在的元素。

如果要將內容應用於AJAX調用加載的內容,請為AJAX指定一個回調函數,該函數在加載完成后將應用適當的內容。

live版本有什么問題? 它仍然默默地失敗嗎?

#yes點擊事件方法中的AJAX請求是否可能失敗?

我已經在jsfiddle上使用了您的代碼並將其簡化了很多,而且看起來工作正常。 live的使用沒有問題,它應該為通過AJAX插入的元素修復該事件處理程序。

您是否嘗試過僅在事件方法中引發警報以查看它們是否被調用?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM