#javascript #jquery #datetime
#javascript #jquery #datetime
Вопрос:
Проблема с плагином onchange для jQuery Datetime:http://plugins .jquery.com/project/datetime
Я использую следующий код.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<script type="text/javascript" src="/charts/js/jquery-1.4.4.min.js"></script>
<script type="text/javascript" src='/charts/js/jquery-ui-1.8.6.custom.min.js'></script>
<script type="text/javascript" src="/charts/js/jquery.ui.datetime.min.js"></script>
<link rel="Stylesheet" href="/charts/css/redmond/jquery-ui-1.8.6.custom.css" />
<link rel="Stylesheet" href="/charts/css/jquery.ui.datetime.css" type="text/css" />
<script type="text/javascript">
$(function(){
$('#endSelect').datetime({ value: '2011-01-01 13:00', minDate: '2011-01-01 01:00', maxDate: '2011-12-31 12:00'});
});
jQuery('#endSelect').change(function() {
alert("hi");
});
</script>
</head>
<body>
<input id="endSelect" class="grid-3" />
</body>
</html>
Я настроил тестовый сайт здесь, где вы можете протестировать код самостоятельно.
Комментарии:
1. Где этот код «onChange»? Другими словами, где это отображается в вашем
<script>
содержимом? Что произойдет, если вы переместите его в тот же обработчик «ready», где вы настроили параметры «.datetime()»?2. Где вы определяете «материал», вы пробовали «материал ()»
3. Я опубликовал полный код, а также тестовую ссылку.
4. Похоже, это как-то связано с функцией .change и плагином datetime и .click работает.
Ответ №1:
Я протестировал это, и, похоже, это работает..
jQuery('#endSelect').change(function() {
alert('duh');
});
Комментарии:
1. Да, у меня это не работает. Я опубликовал полный код, а также тестовую ссылку, показывающую, что он не работает. Любая помощь была бы отличной.
Ответ №2:
я написал datetime. он использует фабрику виджетов. события там не запускаются как обычные события jquery по дизайну. ознакомьтесь с документами наhttp://wiki.jqueryui.com/w/page/12138135/Widget factory. у вас есть два способа выполнить то, что вы пытаетесь сделать.
<script>
$(function(){
// you can put any triggerable event in as options on the init
$('#datetime').datetime({ value: ' 1month', change: function(){
alert("hello small world")
}
});
// or bind using the plugin name as a prefix on the event
$('#datetime').datetime({ value: ' 1month' }).bind("datetimechange", function(){
alert("hello small world")
});
});
</script>
Date:amp;nbsp;<input id="datetime" />
надеюсь, это поможет. R
Ответ №3:
Привязка вашего события происходит до того, как элемент существует. Селектор не соответствует ни одному элементу и прикрепил ваше оповещение к этим 0 элементам.
Вам нужно, чтобы подключение к событию происходило после того, как элемент находится в DOM, все, что вам нужно сделать, это переместить вашу функцию оповещения внутри первого вызова jQuery, это означает, что код не запускается до запуска onLoad:
<script type="text/javascript">
$(function(){
$('#endSelect').datetime({ value: '2011-01-01 13:00', minDate: '2011-01-01 01:00', maxDate: '2011-12-31 12:00'});
jQuery('#endSelect').change(function() {
alert("hi");
});
});
</script>
Комментарии:
1. Только что попробовал, но он все еще не работает. Однако функция .click работает, поэтому она как-то связана с функцией .change