Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/396.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/7/user-interface/2.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 带有CSS的Onclick函数_Javascript_Jquery_Html_Css - Fatal编程技术网

Javascript 带有CSS的Onclick函数

Javascript 带有CSS的Onclick函数,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我正试图用CSS设计一个巴士座位安排,我用CSS完成了悬停部分,但下一部分是选择座位,点击后背景图像中应该会有变化。 我为每个座位使用不同的ID。使用以下代码 .myClass { background:url('images/transparent-backgro-seatlayout.gif') 0 -60px; } document.getElementById("w1").className += " myClass"; 但这是行不通的。由于我对java脚本了解不多,因此无法

我正试图用CSS设计一个巴士座位安排,我用CSS完成了悬停部分,但下一部分是选择座位,点击后背景图像中应该会有变化。 我为每个座位使用不同的ID。使用以下代码

.myClass {
    background:url('images/transparent-backgro-seatlayout.gif') 0 -60px;
}

document.getElementById("w1").className += " myClass";
但这是行不通的。由于我对java脚本了解不多,因此无法解决我的问题。请帮忙

我建议您使用。在你的情况下,你会

 $("#w1").addClass("myClass");
我建议你使用。在你的情况下,你会

 $("#w1").addClass("myClass");

如果使用jQuery,这可能非常简单:

$("#w1").click(function() {
  $(this).addClass('myClass');
});
注意,通过使用$(this),您可以自动引用所单击的元素。这很方便,因为您提到有许多可点击座位,每个座位都有一个唯一的id。与其为每个可点击座位手动创建事件处理程序(“w1”、“w2”等),不如使用与任何座位匹配的选择器。假设所有座位都在id为“seats”的标签内,并且每个座位都用“a”标签表示:

因此,您的标记将如下所示:

<div id="seats">
  <a id="w1">seat 1</a>
  <a id="w2">seat 2</a>
  ....
</div>

注意,您不必使用jquery来实现所有这些。您可以在原始javascript中完成,也可以使用不同的javascript框架。但是如果您有选择的话,jquery会使编写代码变得容易得多。

如果您使用jquery,这可能很容易:

$("#w1").click(function() {
  $(this).addClass('myClass');
});
function changeImage(this){
   var el;
   el.classname = 'updatedImgClass';
}
注意,通过使用$(this),您可以自动引用所单击的元素。这很方便,因为您提到有许多可点击座位,每个座位都有一个唯一的id。与其为每个可点击座位手动创建事件处理程序(“w1”、“w2”等),不如使用与任何座位匹配的选择器。假设所有座位都在id为“seats”的标签内,并且每个座位都用“a”标签表示:

因此,您的标记将如下所示:

<div id="seats">
  <a id="w1">seat 1</a>
  <a id="w2">seat 2</a>
  ....
</div>
注意,您不必使用jquery来实现所有这些。您可以在原始javascript中完成,也可以使用不同的javascript框架。但是如果您有选择的话,jquery可以使编写代码变得容易得多

function changeImage(this){
   var el;
   el.classname = 'updatedImgClass';
}
当我们通过传递某个座位的对象来点击该座位时,触发上述函数


当我们通过传递特定座椅的对象来单击该座椅时,触发上述功能

您所说的
不工作是什么意思
?请尝试。您可以使用它编写
$('#w1')。单击(function(){this.addClass('myClass');})会更好。。。如果不知道元素w1是什么(span/div/其他一些html元素),回答起来会有点困难。另外,您确定单击事件一开始就正确触发了吗?我期待结果,但没有得到结果。我正在使用div ID名称作为w1。您所说的
不工作是什么意思。您可以使用它编写
$('#w1')。单击(function(){this.addClass('myClass');})会更好。。。如果不知道元素w1是什么(span/div/其他一些html元素),回答起来会有点困难。另外,您确定单击事件一开始就正确触发了吗?我期待结果,但没有得到结果。我正在使用div ID名称作为w1。我尝试了您的建议并使用了
$(文档)。准备好了吗(function(){$(“{w1”)。单击(function(){$(this.addClass('myClass');})$(“{seats a”)。单击(function(){$(this.addClass('myClass');})$(“{seats a”)。单击(function(){$(this.toggleClass('myClass');});
,但无法获得结果,因为我没有jQuery知识。请尝试以下操作:
$(文档)。准备就绪(function(){$(“#seats a”)。单击(function(){$(this).toggleClass('myClass');}});
1)只需加载一次jquery(看起来像加载了它的两个副本)。2)只需添加一个单击函数(否则它们可能会相互抵消,特别是最后两个).3)发布整个标记的完整示例以获得更多反馈。我尝试了您的建议并使用了
$(document).ready(function(){$(“#w1”).click(function(){$(this).addClass('myClass');});$(“#seats a”).click(function(){$(this).addClass('myClass');})$(“#seats a”).click(function(){$(this).toggleClass('myClass');})
但无法获得结果,因为我没有jQuery知识。请尝试以下操作:
$(文档)。准备(函数(){$(“#座位a”)。单击(函数(){$(this)。切换类('myClass');});
1)只需加载jQuery一次(看起来像加载了它的两个副本)。2)只需添加一个单击函数(否则他们可能会相互抵消,特别是最后两个)。3)发布整个标记的完整示例以获得更多反馈。