datepicker init绑定时出错 [英] Error on datepicker init binding
本文介绍了datepicker init绑定时出错的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
嗨!
我在淘汰赛上遇到init事件绑定问题
这是代码:
Hi!
I'm having a problem on a init event binding on knockout
This is the code:
ko.bindingHandlers.datepicker = {
init: function (element, valueAccessor, allBindingsAccessor) {
//initialize datepicker with some optional options
var options = allBindingsAccessor().datepickerOptions || {};
$(element).datepicker(options);
//handle the field changing
ko.utils.registerEventHandler(element, "change", function () {
var observable = valueAccessor();
observable($(element).datepicker("getDate"));
});
//handle disposal (if KO removes by the template binding)
ko.utils.domNodeDisposal.addDisposeCallback(element, function () {
$(element).datepicker("destroy");
});
element.isFirstRun = true;
},
update: function (element, valueAccessor) {
var value = ko.utils.unwrapObservable(valueAccessor());
//handle date data coming via json from Microsoft
if (String(value).indexOf('/Date(') == 0) {
value = new Date(parseInt(value.replace(/\/Date\((.*?)\)\//gi, "$1")));
}
if (element.isFirstRun) {
$(element).val(value);
element.IsFirstRun = false;
return;
}
var current = $(element).datepicker("getDate");
if (value - current !== 0) {
$(element).datepicker("setDate", value);
}
}
};
代码片段在哪里observable($(元素) ).datepicker(getDate));在文件moment-datepicker.js:443中给出错误Uncaught TypeError:undefined is not function,此文件的代码行443是摘录:
Where is the code snippet "observable ($ (element) .datepicker (" getDate "));" is giving an error "Uncaught TypeError: undefined is not a function" in the file "moment-datepicker.js: 443", and the line of code 443 of this file is the excerpt:
$.fn.datepicker = function (option, val) {
var results = [];
var chain = this.each(function () {
var $this = $(this),
data = $this.data('datepicker'),
options = typeof option === 'object' && option;
if (typeof option === 'string') {
if (data) {
if (val) {
line 443 var result = data[option](val); //crashes exactly here
if (typeof result !== 'undefined')
results.push(result);
}
}
} else if (!data) {
$this.data('datepicker', (data = new Datepicker(this, $.extend({}, $.fn.datepicker.defaults, options))));
}
});
return results.length == 1 ? results[0]
: results.length ? results
: chain;
};
推荐答案
(元素).datepicker(options);
// 处理字段更改
ko.utils。 registerEventHandler(element, change,function(){
var observable = valueAccessor();
observable(
(element).datepicker(options); //handle the field changing ko.utils.registerEventHandler(element, "change", function () { var observable = valueAccessor(); observable(
(element).datepicker( getDate));
});
// 句柄处理(如果KO通过模板绑定删除)
ko.utils.domNodeDisposal.addDisposeCallback(element,function(){
(element).datepicker("getDate")); }); //handle disposal (if KO removes by the template binding) ko.utils.domNodeDisposal.addDisposeCallback(element, function () {
(element).datepicker( < span class =code-string> destroy);
});
element.isFirstRun = true ;
},
更新:function(element,valueAccessor){
var value = ko.utils.unwrapObservable(valueAccessor());
// 处理来自Microsoft的json的日期数据
if ( String ( value )。indexOf (' / Date(')== 0 ){
value = new 日期(parseInt( value .replace(/ \ / Date \((。*?)\)\ // gi,
(element).datepicker("destroy"); }); element.isFirstRun = true; }, update: function (element, valueAccessor) { var value = ko.utils.unwrapObservable(valueAccessor()); //handle date data coming via json from Microsoft if (String(value).indexOf('/Date(') == 0) { value = new Date(parseInt(value.replace(/\/Date\((.*?)\)\//gi, "
这篇关于datepicker init绑定时出错的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文