我对Javascript / Jquery很陌生,我正在为练习实现一个真正简单的图像轮播,并遇到了关于Jquery的“点击”方法的问题。
我目前的代码如下:
$(document.getElementsByClassName("traverse")).click(function() {
if(this.id = "left"){
if (current == 0) {
current = images.length-1;
}
else {
current -= 1;
}
}
else if(this.id = "right") {
if(current = images.length-1) {
current = 0;
}
else {
current += 1;
}
}
$(document.getElementById("image-view")).css("background-image", "url(" + images[current] + ")");
});
使用此代码没有错误,但每次单击“#right”或“#left”按钮时,它们都会运行代码,就像“this.id ='left'”一样。虽然我明白我可以简单地将两者分开,这样可以正常工作,有没有一种方法可以做到类似于我现在所用的方法,我将这个事件应用到类中,但通过id来区分行为?
谢谢!
答案 0 :(得分:4)
错字
==
至compare
=
至assign
Strict equal(===)如果操作数相等且返回,则返回true 相同类型
if(this.id === "left"){
^
<小时/> 并且更好地使用
$('.traverse').click(function(){ .. });
代码问题
如果条件一直是真的,那么你每次都会分配this.id = "left"
if(this.id = "left"){
答案 1 :(得分:1)
您只需使用一个this.id
符号即可将 left
设置为 =
。试试这个:
$(document.getElementsByClassName("traverse")).click(function(event) {
if(event.target.id === "left"){
等等。