2014-12-26 2 views
0

может кто-нибудь помочь, почему я получаю эту ошибку?JavaScript - Uncaught ReferenceError: моя функция не определена

Uncaught ReferenceError: selected_1 не определен

Uncaught ReferenceError: selected_2 не определен

Вот мой код:

<img src="/css/img/firstRoom_selected.png" onclick="selected_1()" id="firstRoom" style="cursor:pointer;"> 
<img src="/css/img/secondRoom.png" onclick="selected_2()" style=" cursor:pointer;"> 

<script> 
$(document).ready(function() { 
    function selected_1() { 

    if (document.getElementById("firstRoom").src == "/css/img/firstRoom.png") 
    { 
     document.getElementById("firstRoom").src = "/css/img/firstRoom_selected.png"; 
    } 
} 

    function selected_2() { 

    if (document.getElementById("firstRoom").src == "/css/img/firstRoom_selected.png") 
    { 
     document.getElementById("firstRoom").src = "/css/img/firstRoom.png"; 
     document.getElementById("secondRoom").src = "/css/img/secondRoom_selected.png"; 
    } 
} 
}); 
</script> 

Большое спасибо заранее! :)

+0

ли Вы пробовали писать теги изображений после скриптовых тегов – pkrawat1

+0

вы Прикрепление обработчики событий до того, как дом будет готов, но определяющие функции, когда дом готов – andrew

+0

Scope вопрос, опять же ... – Leo

ответ

0

Вы нет необходимости использовать $(document).ready

<img src="/css/img/firstRoom_selected.png" onclick="selected_1()" id="firstRoom" style="cursor:pointer;"> 
<img src="/css/img/secondRoom.png" onclick="selected_2()" style=" cursor:pointer;"> 

И ЯШ:

<script> 
    function selected_1() { 

    if (document.getElementById("firstRoom").src == "/css/img/firstRoom.png") 
    { 
     document.getElementById("firstRoom").src = "/css/img/firstRoom_selected.png"; 
    } 
} 

    function selected_2() { 

    if (document.getElementById("firstRoom").src == "/css/img/firstRoom_selected.png") 
    { 
     document.getElementById("firstRoom").src = "/css/img/firstRoom.png"; 
     document.getElementById("secondRoom").src = "/css/img/secondRoom_selected.png"; 
    } 
} 
</script> 
+0

хорошо, спасибо ! но теперь ничего не происходит, когда я нажимаю на одно из изображений? – Chris

0

Было бы лучше сделать это следующим образом:

$(function(){ 
    $('#firstRoom').click(selected_1) 
}) 
0

Вы имеете определил ваши функции внутри другой анонимной функции, используя $document.ready, следовательно, это не видно глобальный охват.

Ваши изображения ищут selected_1 и selected_2 в глобальном масштабе и, следовательно, не смогли найти его.

определить свою функцию вне $(document).ready обработчика

, если вы хотите использовать функции в обработчике затем прикрепить нажмите обработчик в готовой функции. попробуйте этот скрипт

вы также должны изучить предварительную загрузку изображений, это будет другой вопрос.

<script> 
    function selected_1() { 
    if (document.getElementById("firstRoom").src == "/css/img/firstRoom.png") { 
     var image = new Image() 
     image.src = "/css/img/firstRoom_selected.png"; 
     document.getElementById("firstRoom").src = image.src 
    } 
} 

    function selected_2() { 
    if (document.getElementById("firstRoom").src == "/css/img/firstRoom_selected.png") { 
     var image = new Image() 
     image.src = "/css/img/firstRoom.png"; 
     document.getElementById("firstRoom").src = image.src 

     var image2 = new Image() 
     image2.src = "/css/img/secondRoom_selected.png"; 
     document.getElementById("secondRoom").src = image2.src 
    } 
} 
</script> 
Смежные вопросы