Javascript 在elgg jQuery中,日期选择器选项不起作用
我第一次用elgg做实验。elgg_视图(“输入/日期”使用datepicker函数,但我需要添加一些选项 在我的插件(称为“help”)初始化函数(start.php)中,我声明 elgg_扩展_视图('js/elgg','help/js'); 然后,在\mod\help\views\default\help\js.php中,我从elgg核心复制了elgg.ui.initDatePicker函数,并向其添加了选项 elgg.provide('elgg.help') 顶上 elgg.register\u hook\u handler('init','system',elgg.ui.initDatePicker) 在底部,如下所示: --开始\mod\help\views\default\help\js.php代码Javascript 在elgg jQuery中,日期选择器选项不起作用,javascript,jquery,jquery-ui,datepicker,elgg,Javascript,Jquery,Jquery Ui,Datepicker,Elgg,我第一次用elgg做实验。elgg_视图(“输入/日期”使用datepicker函数,但我需要添加一些选项 在我的插件(称为“help”)初始化函数(start.php)中,我声明 elgg_扩展_视图('js/elgg','help/js'); 然后,在\mod\help\views\default\help\js.php中,我从elgg核心复制了elgg.ui.initDatePicker函数,并向其添加了选项 elgg.provide('elgg.help') 顶上 elgg.regist
elgg.provide('elgg.help');
elgg.ui.initDatePicker = function() {
var loadDatePicker = function() {
$('.elgg-input-date').datepicker({
// MY OPTIONS ADDED
yearRange: "-100:+0",
changeYear: true,
changeMonth: true,
// ISO-8601
dateFormat: 'yy-mm-dd',
onSelect: function(dateText) {
if ($(this).is('.elgg-input-timestamp')) {
// convert to unix timestamp
var dateParts = dateText.split("-");
var timestamp = Date.UTC(dateParts[0], dateParts[1] - 1, dateParts[2]);
timestamp = timestamp / 1000;
var id = $(this).attr('id');
$('input[name="' + id + '"]').val(timestamp);
}
}
});
};
if ($('.elgg-input-date').length && elgg.get_language() == 'en') {
loadDatePicker();
} else if ($('.elgg-input-date').length) {
elgg.get({
url: elgg.config.wwwroot + 'vendors/jquery/i18n/jquery.ui.datepicker-'+ elgg.get_language() +'.js',
dataType: "script",
cache: true,
success: loadDatePicker,
error: loadDatePicker // english language is already loaded.
});
}
}
elgg.register_hook_handler('init', 'system', elgg.ui.initDatePicker);
---\mod\help\views\default\help\js.php代码结束
elgg.provide('elgg.help');
elgg.ui.initDatePicker = function() {
var loadDatePicker = function() {
$('.elgg-input-date').datepicker({
// MY OPTIONS ADDED
yearRange: "-100:+0",
changeYear: true,
changeMonth: true,
// ISO-8601
dateFormat: 'yy-mm-dd',
onSelect: function(dateText) {
if ($(this).is('.elgg-input-timestamp')) {
// convert to unix timestamp
var dateParts = dateText.split("-");
var timestamp = Date.UTC(dateParts[0], dateParts[1] - 1, dateParts[2]);
timestamp = timestamp / 1000;
var id = $(this).attr('id');
$('input[name="' + id + '"]').val(timestamp);
}
}
});
};
if ($('.elgg-input-date').length && elgg.get_language() == 'en') {
loadDatePicker();
} else if ($('.elgg-input-date').length) {
elgg.get({
url: elgg.config.wwwroot + 'vendors/jquery/i18n/jquery.ui.datepicker-'+ elgg.get_language() +'.js',
dataType: "script",
cache: true,
success: loadDatePicker,
error: loadDatePicker // english language is already loaded.
});
}
}
elgg.register_hook_handler('init', 'system', elgg.ui.initDatePicker);
它确实打开了一个日历,但它没有应用我的yearRange、changeYear和changemount选项。不过,如果我只是在elgg\js\lib\ui.js中添加这些选项,它可以正常工作。因为我不想弄乱核心文件,所以我在这里寻求提示。谢谢你。注意,你用这种方式覆盖了elgg.ui.initDatePicker的核心版本 您似乎在init系统上第二次注册了相同的函数(它是由core注册的,您刚刚更改了实现) 如果不使用提供的(elgg.help)对象,也不需要运行elgg.provide 除此之外,我还要确保及时加载JS代码。如何加载代码?elgg_load_JS或一些视图扩展?使用
elgg_view('input/datepicker',array('name'=>'startDate'));
对于elgg 1.8.16