$(文件).on(“点击”...仅偶尔工作

时间:2013-08-13 19:39:39

标签: javascript jquery

我正在尝试创建一个脚本,每次点击divfurniture时,都会使用最后点击的元素更新变量。

不幸的是,虽然看起来这确实有效,但它似乎只是有时起作用。就任何形式的一致性而言,我一直无法找到。

$(document).on("click", ".furniture", function() {
    console.log("YouBeClickin'");
    if ( isCurrentElem == 1) {
        $(currentElem).removeClass("chosen")
    }
    currentElem = "#" + this.id; 
    $(currentElem).addClass( "chosen");
    isCurrentElem = 1;
   //alert(currentElem);
});

我正在使用JavaScript动态添加furniture分类元素,否则我会发布HTML。在检查HTML时,很明显我的div被归为furniture,所以问题不在于此。

点击似乎从未真正触发过,不是因为我没有在屏幕上获得预期的结果,而是在我的控制台中没有记录任何内容。再说一遍,并不是因为它不经常发生,而且不经常发生。

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:0)

你可能想要这样的东西:

var currentFurniture; // predefine the "global"

$(document).on("click", ".furniture", function () {
    console.log("YouBeClickin'");
    if ( currentFurniture !== this ) {
        $(currentFurniture).removeClass("chosen");
        currentFurniture = this; 
        $(this).addClass("chosen");
    }
});

答案 1 :(得分:-1)

尝试:

$(document).bind(function() {
    console.log("YouBeClickin'");
    if ( isCurrentElem == 1) {
        $(currentElem).removeClass("chosen")
    }
    currentElem = "#" + this.id; 
    $(currentElem).addClass( "chosen");
    isCurrentElem = 1;
   //alert(currentElem);
});

或与Jquery:

$(document).onclick(function() {
    console.log("YouBeClickin'");
    if ( isCurrentElem == 1) {
        $(currentElem).removeClass("chosen")
    }
    currentElem = "#" + this.id; 
    $(currentElem).addClass( "chosen");
    isCurrentElem = 1;
   //alert(currentElem);
});