簡體   English   中英

DOM沒有滿載?

[英]DOM not fully loaded?

當使用jQuery文檔時,即$(document).ready(function() { }是否有可能DOM尚未完全加載?

我使用一些第三方工具(Telerik的網格),並建立一個客戶端模板來顯示一個復選框來代替,就像這樣 碼:

.ClientTemplate("<input type='checkbox' name='checkedRecords' value='<#= OrderID #>' />")

我問的原因是我試圖將事件連接到所有復選框以監視change

$(':input').change(
    function () {
       alert('you fired!');
});

我在Telerik網格代碼之外手動設置了一個復選框,它連接到復選框更改,但telerik網格內的復選框都沒有...

在那種情況下 - 是否有解決方法?

嘗試使用直播,

$(':input').live('change', function() {
                alert('you fired!');
            });

編輯

.live()已從1.7版本中棄用,自版本1.9起被刪除:而是在()上實時使用

HTML頁面中靜態定義的DOM不可能在$(document).ready()加載。 但是,如果您正在使用動態加載或創建HTML的第三方庫,則無法保證庫在$(document).ready()時已經完成了它的業務。 事實上,它很可能沒有。

你有幾個選擇:

  1. 您可以找到在第三方庫創建HTML之后觸發的事件,因此現在存在復選框,然后使用傳統的jQuery來連接它們。
  2. 您可以使用jQuery中的.live()功能捕獲甚至在您指定要連接它們.live()不存在的DOM對象的事件。 你可以在這里閱讀.live()http//api.jquery.com/live/ 它主要像普通事件處理程序一樣工作,只是它只適用於某些事件,並且在如何停止傳播方面存在一些差異。

暫無
暫無

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

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