2012-02-13 37 views
11

Tôi muốn kích hoạt sự kiện khi một phần tử được tạo.Sự kiện jQuery khi phần tử được tạo

$(document).on('load','#TB_title',function() { 
    console.log('loaded'); 
}); 

Có tương đương với tính năng này hoạt động không?

Tôi thấy một số người đề xuất truy vấn trực tiếp, nhưng điều đó có vẻ nặng nề.

Cảm ơn.

+0

Lưu ý: #TB_title không phải là khung nội tuyến. – rpophessagr

+0

Vui lòng mở rộng khi 'khi một phần tử được tạo'. Bạn có nghĩa là khi một phần tử được thêm vào DOM? –

+0

Có, tôi đang cố gắng kích hoạt chức năng khi tải hộp tải xuống. – rpophessagr

Trả lời

2

Bạn có thể kích hoạt một sự kiện tùy chỉnh toàn cầu:

$(document).on('load','#TB_title',function() { 
    $.event.trigger('nameOfCustomEvent'); 
}); 

$('#element').bind('nameOfCustomEvent', function(){ 
    console.log(this); 
}); 
+0

Trình kích hoạt sẽ không bao giờ cháy, đó là vấn đề mà OP đang hỏi. –

5

Tôi không nghĩ rằng điều như vậy tồn tại trực tiếp, nhưng bạn có thể xử lý các sự kiện DOMSubtreeModified và chờ đợi cho đến khi bạn có thể tìm thấy phần tử với ví dụ ID:

var _elementToFind = "TB_title"; 
var _elementFound = false; 
var _counter = 1; 
$(document).bind("DOMSubtreeModified", function(evt) { 
    if (_elementFound) 
     return; 
    if ($("#" + _elementToFind).length > 0) { 
     alert("element '" + _elementToFind + "' created"); 
     _elementFound = true; 
    } 
}); 

Live test case.

Nhược điểm là nó không được hỗ trợ bởi Opera và IE ít hơn 9 - see here chi tiết đầy đủ.

Các vấn đề liên quan