Итак, я использую средство выбора даты jQuery, и оно работает хорошо. Я использую AJAX, чтобы пойти и получить некоторый контент, очевидно, когда этот новый контент применяется, привязка теряется, я узнал об этой прошлой неделе и обнаружил о методе .live()
.
Но как мне применить это к моему сборщику дат? Потому что это не событие, поэтому .live()
не сможет помочь ... верно?
Это код, который я использую для привязки выбора даты к моему вводу:
$(".datefield").datepicker({showAnim:'fadeIn',dateFormat:'dd/mm/yy',changeMonth:true,changeYear:true});
Я не хочу вызывать этот метод каждый раз, когда запускается мой AJAX, так как я хочу сделать его как можно более универсальным.
Приветствия: -)
EDIT
Как и запрашивал @nick, ниже моя функция-обертка получила метод ajax()
:
var ajax_count = 0;
function getElementContents(options) {
if(options.type===null) {
options.type="GET";
}
if(options.data===null) {
options.data={};
}
if(options.url===null) {
options.url='/';
}
if(options.cache===null) {
options.cace=false;
}
if(options.highlight===null || options.highlight===true) {
options.highlight=true;
} else {
options.highlight=false;
}
$.ajax({
type: options.type,
url: options.url,
data: options.data,
beforeSend: function() {
/* if this is the first ajax call, block the screen */
if(++ajax_count==1) {
$.blockUI({message:'Loading data, please wait'});
}
},
success: function(responseText) {
/* we want to perform different methods of assignment depending on the element type */
if($(options.target).is("input")) {
$(options.target).val(responseText);
} else {
$(options.target).html(responseText);
}
/* fire change, fire highlight effect... only id highlight==true */
if(options.highlight===true) {
$(options.target).trigger("change").effect("highlight",{},2000);
}
},
complete: function () {
/* if all ajax requests have completed, unblock screen */
if(--ajax_count===0) {
$.unblockUI();
}
},
cache: options.cache,
dataType: "html"
});
}
Как насчет этого решения, у меня есть rules.js, который включает все мои начальные привязки с элементами, если я должен был поместить их в функцию, а затем вызвать эту функцию при обратном вызове успеха метода ajax, таким образом я не будет повторять код ...
Хммм, подумайте пожалуйста: D