如何知道javascript函数的发送者?
在HTML中,我有一些图像和一个javascript函数如何知道javascript函数的发送者?,javascript,onmouseover,Javascript,Onmouseover,在HTML中,我有一些图像和一个javascript函数 <img onmouseover="repl()" class="EN" ... /> <img onmouseover="repl()" class="FR" ... /> ... ... 当用户在图像上时。我想根据所选语言更改标题文本 我需要一种在javascript中“引用”函数发送者的方法。 但我不知道,因为我已经多年没有使用javascript了。请帮帮我 function repl() {
<img onmouseover="repl()" class="EN" ... />
<img onmouseover="repl()" class="FR" ... />
...
...
当用户在图像上时。我想根据所选语言更改标题文本
我需要一种在javascript中“引用”函数发送者的方法。
但我不知道,因为我已经多年没有使用javascript了。请帮帮我
function repl() {
// Missing Solution
// var lang = sender.attr("class"); <= Please correct me
var headerText = "";
if (lang == 'FR') {
headerText = "Cliquez sur le drapeau"
} else {
headerText = "Click on flag"
}
函数repl(){
//漏解
//var lang=sender.attr(“class”);var lang=this.getAttribute(“class”);
您应该使用“数据语言”属性。首先,您需要将发送者发送到您的函数:
<img onmouseover="repl(this)" class="EN" ...
最好的解决方案是使用绑定事件。将所有图像设为同一类,选择它们,然后添加事件。我还建议使用来存储语言
<img class="repl" data-lang="EN" ... />
<img class="repl" data-lang="FR" ... />
然后在JavaScript中:
window.onload = function(){// Make sure DOM is ready
// Get the images
var imgs = document.getElementsByClassName('repl');
// Loop over them
for(var i = 0, len = imgs.length; i < len; i++){
// Add the event
imgs[i].addEventListener('mouseover', function(){
// Get the language. "this" is the element we hovered over
var lang = this.getAttribute('data-lang');
var headerText = "";
if (lang == 'FR') {
headerText = "Cliquez sur le drapeau"
} else {
headerText = "Click on flag"
}
});
}
};
window.onload=function(){//确保DOM已准备就绪
//获取图像
var imgs=document.getElementsByClassName('repl');
//绕过去
对于(变量i=0,len=imgs.length;i
演示:但您从未设置lang
。?将导航器语言作为默认语言是一个好主意。我记住了这一点。谢谢,我从未使用过data-lang。我将阅读更多关于这一点的内容。data-*属性用于定义属性,专门用于存储与它们所属的dom元素相关的数据。在您的情况下,您可以ld创建一个数据lang来存储语言属性,然后可以使用jQuery的.data()或domNode.dataset.langI将“this”作为参数进行访问。谢谢大家!
<img class="repl" data-lang="EN" ... />
<img class="repl" data-lang="FR" ... />
window.onload = function(){// Make sure DOM is ready
// Get the images
var imgs = document.getElementsByClassName('repl');
// Loop over them
for(var i = 0, len = imgs.length; i < len; i++){
// Add the event
imgs[i].addEventListener('mouseover', function(){
// Get the language. "this" is the element we hovered over
var lang = this.getAttribute('data-lang');
var headerText = "";
if (lang == 'FR') {
headerText = "Cliquez sur le drapeau"
} else {
headerText = "Click on flag"
}
});
}
};