Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/130.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
被javascript函数卡住了?_Javascript_Html_Css - Fatal编程技术网

被javascript函数卡住了?

被javascript函数卡住了?,javascript,html,css,Javascript,Html,Css,我必须调用一个函数将法语短语翻译成英语,我被困在showEnglish()上。它不会拉取英文数组。我甚至不确定是否引用了单独JavaScript文件中的setup函数 以下是我目前掌握的情况: window.onload = setup; function setup() { var questions = document.querySelectorAll("article ol li"); for (var i = 0; i < questions.length;

我必须调用一个函数将法语短语翻译成英语,我被困在
showEnglish()
上。它不会拉取
英文
数组。我甚至不确定是否引用了单独JavaScript文件中的setup函数

以下是我目前掌握的情况:

window.onload = setup;
function setup() {   
    var questions = document.querySelectorAll("article ol li");
    for (var i = 0; i < questions.length; i++){
        questions[i].id = i + "phrase"; 
        questions[i].onmousedown = showEnglish;
        //questions[i].onmouseup = showFrench;
        questions[i].style.cursor = "pointer";
    }    
}
function showEnglish() {  
    var phrases = document.getElementById("phrase");
    var phraseNumber = parseInt(phrases.id);
    phraseNumber.innerHTML = english[phraseNumber];
    phraseNumber.style.fontStyle = "italic";
    phraseNumber.style.fontColor = "rgb(191, 22, 31)";
 }
window.onload=设置;
函数设置(){
var问题=document.querySelectorAll(“第三条”);
对于(var i=0;i
以下是一个不使用ID的示例代码段,它应该符合您的需要

可以使用脚本从翻译对象轻松构建问题列表。(检查下面第二个解决方案中的代码段)

//文档加载时(警告:不适用于IE8)
document.addEventListener('DOMContentLoaded',function(){
设置()
})
//储存法语->英语翻译
变量转换={
“你有什么意见?”:“你叫什么名字?”,
“你住在哪里?”
};
//将“translate”函数附加到问题“mousedown”事件
函数设置(){
文件
.querySelectorAll(“第三条”)
.forEach(功能(el){
el.onmousedown=showEnglish
});
}
//在元素上鼠标向下移动时显示平移
函数showEnglish(事件){
var元素=event.src元素| | event.target
var translation=document.getElementById(“translation”);
translation.innerHTML=翻译[element.innerText];
}

.问题{光标:指针;填充:4px}
.translation{字体样式:斜体;颜色:rgb(191,22,31)}
问题
  • 您对上诉有何评论
  • Oùhabitez你呢
  • 贸易
    phraseNumber
    在分配
    parseInt()的结果后包含一个数值。那么,为什么以后要通过设置属性(如
    innerHTML
    style
    )将其视为DOM元素来处理呢?这不是你所期望的。我想这就是我感到困惑的地方。谢谢我会回来纠正的<调用时,code>MouseDown
    事件作为
    showEnglish
    函数的参数传递。您必须使用
    event.srcmelement
    (或Firefox上的
    event.target
    )检索触发事件的元素及其
    id
    。但是可以简化这一点,避免使用ID。请看下面我的答案。它起作用了吗?如有任何反馈,将不胜感激;)添加了第二个解决方案