Реализовать слушателя

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html lang = "en">
<head>
<meta http-equiv = "content-type" content = "text/html;
charset=utf-8">
<title>YUI Calendar Control Example</title>
<link rel = "stylesheet"
type = "text/css"
href = "yui/build/calendar/assets/skins/sam/calendar.css">
<script type = "text/javascript"
src = "yui/build/yahoo-dom-event/
yahoo-dom-event.js"></script>
<script type = "text/javascript"
src = "yui/build/calendar/calendar-min.js"></script>
<style type = "text/css">
input {
margin:0px 10px 0px 10px;
}
</style>
</head>
<body class = "yui-skin-sam">
<div>
<label>Please enter your date of birth:</label>
<input type = "text" name = "dobfield" id = "dobfield">
<img id = "calico" src = "E:\HP_PROJECT\cal.png"
alt = "Open the Calendar control">
</div>
<div id = "mycal"></div>
<script type = "text/javascript">
//create the namespace object for this example
YAHOO.namespace("yuibook.calendar");
//define the lauchCal function which creates the calendar
YAHOO.yuibook.calendar.launchCal = function() {
//create the calendar object, specifying the container
Var myCal = new YAHOO.widget.Calendar("mycal");
//draw the calendar on screen
myCal.render();


}
//define the showCal function which shows the calendar
Var showCal = function() {
//show the calendar
myCal.show();
}

//create calendar on page load
YAHOO.util.Event.onDOMReady(YAHOO.yuibook.calendar.launchCal);
 //attach listener for click event on calendar icon
YAHOO.util.Event.addListener("calico", "click", showCal);  
//myCal.hide();



</script>

</body>
</html>

Я использовал приведенный выше код. Но проблема с кодом в том, что когда я щелкаю значок изображения, ничего не отображается. Я новичок в JavaScript. Пожалуйста, помогите мне, как реализовать слушателя.

Пожалуйста, посоветуйте мне, где делать изменения в коде.

Спасибо Падмаджа

переформатируйте код, чтобы он был удобочитаемым.

Triptych 23.12.2008 08:13

Думаю, я скопировал это, как задумал ...

dkretz 23.12.2008 08:42

подождите - не следует ли оставлять исходный неправильный код в вопросе и мой правильный код в моем ответе?

Triptych 23.12.2008 08:49

если все-таки хотите переформатировать, скопируйте его исходный код из моего поста.

Triptych 23.12.2008 09:11

Как это должно быть отклонено? +1

madcolor 05.10.2009 17:52

похоже, что приведенный выше код получен из packtpub.com/article/…, который содержит множество ошибок, в основном использование Var вместо var в сценариях.

lincolnk 27.10.2010 22:58
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
6
587
1

Ответы 1

Проблема в том, что myCal - это локальная переменная функции launchCal(). Предоставление переменной myCal глобально доступного пространства имен сделает его доступным для каждой области.

Вот ваш исходный код (кто-то случайно вставил мой правильный код в ваш исходный вопрос = /)

YAHOO.namespace("yuibook.calendar"); 

//define the lauchCal function which creates the calendar 
YAHOO.yuibook.calendar.launchCal = function() { 

    //create the calendar object, specifying the container 
    var myCal = new YAHOO.widget.Calendar("mycal"); 

    //draw the calendar on screen 
    myCal.render(); 
}

//define the showCal function which shows the calendar
Var showCal = function() { 
    //show the calendar 
    myCal.show(); 
} 

//create calendar on page load
YAHOO.util.Event.onDOMReady(YAHOO.yuibook.calendar.launchCal); 

//attach listener for click event on calendar icon 
YAHOO.util.Event.addListener("calico", "click", showCal); 

//myCal.hide();

Теперь посмотрите мои изменения. Обратите внимание на использование глобального пространства имен YAHOO.

YAHOO.namespace("yuibook.calendar"); 

//define the lauchCal function which creates the calendar 
YAHOO.yuibook.calendar.launchCal = function() { 

    //create the calendar object, specifying the container 
    YAHOO.yuibook.calendar.myCal = new YAHOO.widget.Calendar("mycal"); 

    //draw the calendar on screen 
    myCal.render(); 
}

//define the showCal function which shows the calendar
Var showCal = function() { 
    //show the calendar 
    YAHOO.yuibook.calendar.myCal.show(); 
} 

//create calendar on page load
YAHOO.util.Event.onDOMReady(YAHOO.yuibook.calendar.launchCal); 

//attach listener for click event on calendar icon 
YAHOO.util.Event.addListener("calico", "click", showCal); 

//myCal.hide();

Ваш ответ должен быть в вашем ответе, а не в его вопросе. Теперь я понятия не имею, о чем он спрашивал, потому что вы изменили вопрос на «ответ». Что он сделал не так в исходном вопросе? Как кто-то может извлечь уроки из своей ошибки?

jmucchiello 23.12.2008 08:48

Я этого не делал, это делал Ле Дорфье. Надеюсь, он вернет его обратно. У меня недостаточно полномочий или чего-то еще, чтобы редактировать чужие сообщения. Во всяком случае - откатил, чтобы показать свой ответ.

Triptych 23.12.2008 08:51

этот ответ указывает на проблему, но в коде есть пара проблем. заявление myCal.render(); необходимо обновить до YAHOO.yuibook.calendar.myCal.render();. также Var showCal ... необходимо сделать var showCal ... , поскольку js чувствителен к регистру, а правильное ключевое слово - var с небольшим v. Эта ошибка повторяется в исходном материале (см. комментарий к OP) несколько раз. и не проблема с вашим ответом, но в исходном коде нет ничего, что могло бы скрыть календарь до щелчка по изображению, поэтому он всегда виден.

lincolnk 27.10.2010 22:56

Другие вопросы по теме