我正在尋找一種方法在動態html場景中使不顯眼的javascript(通過data-*
屬性)。讓我們假設我們有一個input
元素代表了一個jQuery UI的日期選擇器:Unobtrusive javascript和動態html
<input type="date" data-min-date="today" />
並做了工作中的JS:
(function(){
$(function() {
$("input[type=date]").each(function() {
var el = $(this);
el.datepicker(el.data());
});
});
})(jQuery);
現在我需要不顯眼的跨瀏覽器的方法來轉換裸體輸入成日期選擇器。輸入將被動態添加。一般來說,我無法控制添加日期選擇器的代碼。通常,代碼將通過jquery.ajax.unobtrusive或jquery-pjax(它們都使用jQuery.html()方法)作爲服務器端預渲染的html注入。但是我需要更多的通用soution,它可以在所有支持jQuery的場景中使用。我看過mutation events但它們不支持在IE中。
完整的jsfiddle,例如http://jsfiddle.net/zv9Rt/1/
這些輸入元素是如何添加的?通過jQuery,或通過DOM? – 2012-04-08 15:08:05
@RobW,實際上它會是一個jQuery-pjax或jquery.ajax.unobtrusive。他們都使用jquery.html方法。但我想要更通用的解決方案。 – hazzik 2012-04-08 15:10:02
你可以使用setTimeout/setInterval來檢查新插入,或者封裝'.append','.html'等,並檢查是否存在新的'input [type = date]'元素。 – 2012-04-08 15:30:43