2012-07-20 18 views
8

Tôi phải tạo một widget cho div nằm bên trong tập lệnh jquery-tmpl.Cách tạo tiện ích bên trong "jquery-tmpl"?

<script id="movieTemplate" type="text/x-jquery-tmpl"> 
     <div id='name'>${Name}</div> 
</script> 

Trong tập lệnh ở trên, tôi muốn truy cập vào name div và tạo tiện ích.

Lưu ý: Tôi sẽ nối thêm tập lệnh đó vào tiện ích con khác, vì vậy ở đây tôi không biết "phụ huynh của mẫu này" là gì.

Làm cách nào để đạt được điều này?

Trả lời

3

Trong mã mà bạn thấy, chuỗi <div id='name'>${Name}</div> là bên trong một nút script, vì vậy nó không được dịch sang một nút DOM, và bạn không thể truy cập vào nút div trước khi thực sự render mẫu.

Bạn có thể làm cho nút: $.tmpl(myTemplate, myData).appendTo(myDomElement), và sau đó bạn có thể truy cập vào nút tạo: $(myDomElement).find('div#name') và làm bất cứ điều gì bạn muốn với nó (ví dụ: $(myDomElement).find('div#name').datepicker() ...)

0

Templates chỉ là một cái gì đó để làm cho tòa nhà Các chuỗi html dễ dàng hơn, chúng không dành cho logic như khởi tạo các tiện ích hoặc bất kỳ thứ gì.

Mã chuyển html thành dom là nơi tạo tiện ích con. Mẫu của bạn thực sự không nên biết "cha mẹ của mẫu này là gì" vì nó chỉ là một chuỗi câm.

+0

Tại sao bạn nên downvote? Những gì tôi nói là sự thật không thể phủ nhận cuối cùng :) – Esailija