2017-07-12 132 views
-3

我有问题得到一个按钮的工作。我想,当我点击这个按钮事情发生:按钮addEventListener不起作用

<button id="pigBtn" value="click">Pig It!</button> 

和我的JS文件有

window.addEventListener('load', function(){ 
    console.log('hello'); 
    let pigBtn = document.querySelector('#pigBtn'); 
    console.log('pigged'); 
    pigBtn.addEventListener('click', function(){ 

    function pigIt(phrase) { 
     let array = phrase.split(' '); 
     console.log('array'); 

     for (let i = 0; i < phrase.length; i++) { 
      let pig = array[i].split(''); 
      let one = pig.shift(); 
      pig.push(one); 
      pig.push('ay'); 
      let two = pig.join(''); 

      array[i] = two; 
    } 
     return array.join(' '); 

    } 

    }); 

}); 

“你好”和“清管”出现,但“数组”没有。我在这里错过了什么?

+2

'ID = “pigBtn”''VS querySelector( '#清管')' –

+0

变化让pigBtn =文件.querySelector( '#清管');让pigBtn = document.querySelector('#pigBtn'); –

+2

使用getElementById而不是querySelector来查找一个ID ...它快得多。 – baao

回答

0

该按钮的ID为pigBtn,但您尝试选择ID为pigged的元素。

试试这个:

let pigBtn = document.querySelector('#pigBtn'); 

window.addEventListener('load', function(){ 
 
    console.log('hello'); 
 
    let pigBtn = document.querySelector('#pigBtn'); 
 
    console.log('pigged'); 
 
    pigBtn.addEventListener('click', function(){ 
 
     console.log('clicked'); 
 
    }); 
 
});
<button id="pigBtn" value="click">Pig It!</button>

0

您的pigIt函数从未执行。你在你的事件处理器中定义它,但你永远不会运行它。

我想你会为这样的事情:

window.addEventListener('load', function(){ 
 
    var sentence = "This is the phrase I'm pigging"; 
 
    console.log('hello'); 
 
    let pigBtn = document.getElementById('pigBtn'); 
 
    let pigTxt = document.getElementById('phraseTxt'); 
 
    let pigPhraseTxt = document.getElementById('pigPhraseTxt'); 
 
    console.log('pigged'); 
 
    pigBtn.addEventListener('click', function(e) { 
 
    let array = pigTxt.value.split(' '); 
 
    for (let i = 0; i < array.length; i++) { 
 
     let pig = array[i].split(''); 
 
     let one = pig.shift(); 
 
     pig.push(one); 
 
     pig.push('ay'); 
 
     let two = pig.join(''); 
 
     array[i] = two; 
 
    } 
 
    pigPhraseTxt.value = array.join(' '); 
 
    }); 
 
});
input { 
 
    display : block; 
 
    width : 100%; 
 
    padding: 0; 
 
    border: 1px solid #aaa; 
 
} 
 

 
input:read-only { 
 
    background: #ddd; 
 
}
<input type="text" id="phraseTxt" value="This is the text I'm converting to Pig Latin" /> 
 
<input type="text" id="pigPhraseTxt" readonly /> 
 
<button id="pigBtn" value="click">Pig It!</button>

+0

谢谢!这有帮助。现在我只需要能够输入文本并点击按钮将短语转换为拉丁文。 –

+0

@BenC。 :我修改了代码以符合该用例:-) –