Javascript JQuery toggleClass()打开然后退出(或删除)

Javascript JQuery toggleClass()打开然后退出(或删除),javascript,jquery,html,css,angularjs,Javascript,Jquery,Html,Css,Angularjs,我使用的是一个角度指令,在页面中有一个左右列和。当用户单击一个时,它会在右列中找到相应的目标1 这很好,我现在要做的是在点击特定div的背景后,应该是flash之类的,我有一些css。所以我想切换那个css类,然后在一秒钟后删除那个类(或者关闭它) 我试图使用setTimeout()函数,但它似乎不起作用。有什么想法吗 我的错误是: Uncaught TypeError: Cannot read property 'toggleClass' of undefined var highligh

我使用的是一个角度指令,在页面中有一个左右列<代码>和
。当用户单击一个
时,它会在右列中找到相应的
目标1

这很好,我现在要做的是在点击特定div的背景后,应该是flash之类的,我有一些css。所以我想切换那个css类,然后在一秒钟后删除那个类(或者关闭它)

我试图使用
setTimeout()
函数,但它似乎不起作用。有什么想法吗

我的错误是:

Uncaught TypeError: Cannot read property 'toggleClass' of undefined 
var highlight = {

    onReady: function() {

        $(document).on('click', 'left-column > div', function(event) {

            var id = $('a', this).attr('href').split('#');
            var target = $('right-column > div').find('#' + id[1]);

            target.toggleClass('gas');
            var junk = setTimeout(function(target) {
                target.toggleClass('gas');
            }, 1000);

            event.preventDefault();

        });

    }

};


$(document).ready(highlight.onReady);
我的js是:

Uncaught TypeError: Cannot read property 'toggleClass' of undefined 
var highlight = {

    onReady: function() {

        $(document).on('click', 'left-column > div', function(event) {

            var id = $('a', this).attr('href').split('#');
            var target = $('right-column > div').find('#' + id[1]);

            target.toggleClass('gas');
            var junk = setTimeout(function(target) {
                target.toggleClass('gas');
            }, 1000);

            event.preventDefault();

        });

    }

};


$(document).ready(highlight.onReady);

您的问题是,您希望
target
作为传递给
setTimeout
的回调中的参数,但实际上没有传递任何参数,因此
setTimeout
回调的
target
本地隐藏了对外部作用域中可用的
target
的访问(阴影)

从回调参数中删除
target
将修复您的错误:

var junk = setTimeout(function(/* remove target from here */) {
  target.toggleClass('gas');
}, 1000);
或者,如果愿意,您可以显式地传递它,但它将是多余的,因为它已经可用:

var junk = setTimeout(function(target) {
  target.toggleClass('gas');
}, 1000, target); // <--- you can pass the target along here
var junk=setTimeout(函数(目标){
target.toggleClass(“气体”);

},1000,目标);//哈哈,不错,但不确定你的意思是什么,backOff()是一个真正的函数吗?请发布一个提琴,这样我们就可以看到你看到的内容了。不…标题是使用
target[0]尝试。toggleClass('gas')
target.each(function(){$(this).toggleClass('gas')})
Unrelated(有点),如果你得到了锚,你可以只做
$('a',this.prop('hash')
。我相信这将包括
#
,因此您无需将其重新添加。另外,由于您正在查找一个ID,您可以使用
$(ID)
而不是
在列中查找它。太棒了,我想当我最初创建函数时,我考虑得太多了。(系统允许的时候,我会马上接受你的回答。)谢谢!没问题,伙计,很乐意帮忙:)