对于具有/相同类的元素,Javascript .click()不同

时间:2013-11-01 00:51:57

标签: javascript jquery web click

我对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来区分行为?

谢谢!

2 个答案:

答案 0 :(得分:4)

错字

==compare

=assign

  

Strict equal(===)如果操作数相等且返回,则返回true   相同类型

if(this.id === "left"){
            ^

<小时/> 并且更好地使用

class selector

$('.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"){

等等。