Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/435.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/80.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,我有一个简单的代码,其中有4个带按钮的容器。现在,我尝试使整个元素可以单击,以重定向到特定于容器的站点 我在示例中使用的一个元素可以很好地工作,但当我添加多个元素时,其他元素将无法工作 有facebook、youtube、google和twitter容器,每个容器都有特定的重定向链接 所以我需要使不止一个元素不仅在按钮上,而且在整个元素上都可以正确点击 var el=document.getElementById(“容器”); 如果(el.addEventListener){ el.addEv

我有一个简单的代码,其中有4个带按钮的容器。现在,我尝试使整个元素可以单击,以重定向到特定于容器的站点

我在示例中使用的一个元素可以很好地工作,但当我添加多个元素时,其他元素将无法工作

有facebook、youtube、google和twitter容器,每个容器都有特定的重定向链接

所以我需要使不止一个元素不仅在按钮上,而且在整个元素上都可以正确点击

var el=document.getElementById(“容器”);
如果(el.addEventListener){
el.addEventListener(“单击”,函数(){
document.getElementById(“按钮”)。单击();
},假);
}否则{
el.attachEvent(“onclick”,function()){
document.getElementById(“按钮”)。单击();
});
}
#容器{
背景:珊瑚;
填充:32px;
利润率:16px;
光标:指针;
}

在HTML结构中,
id
必须是唯一的,您可以改用
class
,但您还需要遍历这些项(下面包含的代码片段)

var-elements=document.querySelectorAll(“.container”);
elements.forEach(el=>{
如果(el.addEventListener){
el.addEventListener(“单击”,函数(){
el.querySelector(“.按钮”)。单击();
},假);
}否则{
el.attachEvent(“onclick”,function()){
el.querySelector(“.按钮”)。单击();
});
}
});
.container{
背景:珊瑚;
填充:32px;
利润率:16px;
光标:指针;
}

下面是如何使用简单的javascript函数来实现这一点的代码

函数gohere(url){
位置.替换(url)
}
#容器{
背景:珊瑚;
填充:32px;
利润率:16px;
光标:指针;
}

谷歌
Youtube
脸谱网
啁啾

当页面上有多个元素时,不应使用“id”。相反,建议使用css类

您可以做的是使用
document.querySelectorAll('.some class here')
然后在每个元素中进行迭代以应用click的事件侦听器

关于使整个元素可单击,我将使用以下三种方法之一:

  • 我喜欢的一个选项是在按钮中添加填充,这样按钮/链接就可以填充容器的所有空间,整个容器都可以点击
  • 将容器放在链环内
  • 您必须创建一个javascript函数,该函数将接收正在单击的元素,并读取与将具有链接的元素相关的一些数据,如
    datalink=”http://google.com“
    。有了这些数据,您可以使用
    location
    重定向或在新表中打开链接

  • id必须是唯一的,使用不同的id或更改选择器class@AlibiGhazi当我使用类选择器时,脚本将不起作用,不同的ID,但我有数百个类似的元素,所以不同的ID将是一个问题:D@tarkh是的,但当我使用类选择器时,脚本将不起作用。请尝试使用锚定标记包装div,如下所示
    在代码中执行当前正在执行的操作将不起作用