2016-11-30 2 views
-1

У меня есть кнопка вызова функции 'а':HTML функция кнопки вызова из JS файла

<button id = "btn" type="button" 
      onclick="a();">someText</button> 

показ этой функции и скрывается элемент:

<p id="text" style= "display:none;"> 
Text.</p> 

Функция:

function a() { 

    var b= 0;  
    if (b === 0) 
    { 
    document.getElementById('text').style.display='block'; 
    document.getElementById('btn').innerHTML="changed text"; 
    b = 1; 
    } 
    else 
    { 
    document.getElementById('text').style.display='none'; 
    document.getElementById('btn').innerHTML="someText"; 
    b = 0; 
    } 
} 

Работал, пока я не переместил эту функцию в отдельный файл «x.js». я прикрепил этот файл в моем index.html:

<script type="text/javascript" src="x.js"></script> 

Что случилось с ним? Что я должен сделать, чтобы он работал?

+2

Любые ошибки консоли? Также var b = 0; заставит сценарий делать то же самое каждый раз. – mplungjan

+0

Ничего плохого в том, что вы описали в вопросе. Проблема должна быть связана с чем-то, о чем вы не упомянули. Возможно, вы просто ошиблись в URL. – Quentin

+0

@Quentin - «ничего не так»? Половина функции, как показано, никогда не будет выполнена. – Igor

ответ

0

var b= 0; должны быть определены до функции и быть глобальным

var b = 0; 
 

 
function a() { 
 
    if (b === 0) { 
 
    document.getElementById('text').style.display = 'block'; 
 
    document.getElementById('btn').innerHTML = "changed text"; 
 
    b = 1; 
 
    } else { 
 
    document.getElementById('text').style.display = 'none'; 
 
    document.getElementById('btn').innerHTML = "someText"; 
 
    b = 0; 
 
    } 
 
}
<!DOCTYPE html> 
 
<html> 
 
<head> 
 
    <meta charset="UTF-8"> 
 
    <title>The Steve Barrett Collection</title> 
 
</head> 
 
<body> 
 
    <button id="btn" type="button" onclick="a()">someText</button> 
 
    <p id="text" style="display:none;"> 
 
    Text.</p> 
 
</body> 
 
</html>

+0

в вашем коде onclick =" a(); " не нужно ; и var b = 0; следует определить befor функции и быть глобальным – alifallahi

+0

Точка с запятой не имеет значения и добавьте свой комментарий к ответу – mplungjan

+0

у меня нет 50 репутации для комментариев – alifallahi

Смежные вопросы