#javascript
#javascript
Вопрос:
я пытался вывести предупреждение при нажатии на div, на самом деле это не удалось, я немного перепутал его, чтобы попрактиковаться с объектами.
вот код :
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript">
var mine = {
var start = {
modeBox : function(){
alert();
}
}
}
</script>
</head>
<body>
<div id="askMode" onclick="mine.start.modeBox();">My mine</div>
</body>
</html>
проблема: не оповещение
почему я не получаю оповещение при нажатии на div? живой пример: http://jsfiddle.net/YqP93 /
Комментарии:
1. Посмотрите на консоль, и вы увидите, что вы получаете синтаксическую ошибку. Узнайте об основах JavaScript и особенно о том, как отлаживать код JavaScript.
Ответ №1:
Следующий код протестирован в Firefox и Chrome:
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript">
var mine = {
start: {
modeBox : function(){
alert('Test');
}
}
}
</script>
</head>
<body>
<div id="askMode" onclick="mine.start.modeBox();">My mine</div>
</body>
</html>
ПРИМЕЧАНИЕ: код, который вы опубликовали в jsfiddle, не работает, но вы можете скопировать и вставить приведенный выше код, который работает в упомянутых браузерах.
Ответ №2:
this.mine = {
start: {
modeBox : function(){
alert();
}
}
вы пытаетесь объявить переменную в литерале объекта. Я не думаю, что это допустимый js для одного, но, что более важно, вы не можете получить доступ к переменным, объявленным в этой области. Вы должны присвоить свойство объекту. У вас все было правильно с modeBox.
Комментарии:
1. Похоже, что «var mine» также выходит за рамки при попытке получить к нему доступ из события onclick. Вам нужно сделать this.mine, чтобы привязать его к глобальной области видимости. Я обновил свой ответ, чтобы отразить это.
Ответ №3:
Избавьтесь от var
замедления (почему?):
mine = {
start: {
modeBox: function() {
alert();
}
}
};
Демонстрация: http://jsfiddle.net/YqP93/3 /
Ответ №4:
попробуйте это
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript">
var mine = {
start: {
modeBox: function(){
alert();
}
}
}
</script>
</head>
<body>
<div id="askMode" onclick="mine.start.modeBox();">My mine</div>
</body>
</html>
Комментарии:
1. Ответ очень неправильный и все еще в порядке. Это подрывает надежность StackOverflow!