JavaScript传递元素但接收窗口?

JavaScript传递元素但接收窗口?,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我试图通过以下方式传递“此信息”: 并且通过了“div.test”,就像我通过它时应该通过的那样,但是当接收到它时: function displayDate(obj){ } 它说它是“窗口”???下面是我正在构建的JavaScript。我试图为触发事件的类建立一个基础,最终我将通过SpRITE解析来改变元素。SRC=“.jpg”,通过一个可变速率(现在设置为100)。但我目前还停留在这一点上,我不想在.html代码中插入onmousemove属性等来保持它的整洁。请记住,这只是我写.html

我试图通过以下方式传递“此信息”:

并且通过了“div.test”,就像我通过它时应该通过的那样,但是当接收到它时:

function displayDate(obj){
}
它说它是“窗口”???下面是我正在构建的JavaScript。我试图为触发事件的类建立一个基础,最终我将通过SpRITE解析来改变元素。SRC=“.jpg”,通过一个可变速率(现在设置为100)。但我目前还停留在这一点上,我不想在.html代码中插入onmousemove属性等来保持它的整洁。请记住,这只是我写.html/.css/.js的第三天,所以非常感谢您的帮助

// This helps create a static variable that isn't polluting the global namespace
var incr = (function () {
    var i = 0;
    return function(){ return i++; };
})();

// This perform all of the functions that we would like with some error handling
function displayDate(obj){

    var counter = incr();

    try{
        obj.innerHTML=counter;
    }catch(err){
        var txt="There was an error on this page.\n\n";
        txt+="Error description: " + err.message + "\n\n";
        txt+="Click OK to continue.\n\n";
        alert(txt);
    }
}

// This is our trigger that sets an interval for our main Java function
$(function(){
    var myVar;
    $(".test").hover( function() {
        // The mouse has entered the element, can reference the element via 'this'
        myVar = setInterval("displayDate(this )",100);
    },function () {
        // The mouse has left the element, can reference the element via 'this'
        clearInterval(myVar);
    }
    );
});

调用
displayDate
函数时,您将进入另一个作用域,
是您的窗口对象(不再是div元素)。要解决此问题,可以执行以下操作:

$(".test").hover( function() {
    var self = this;

    myVar = setInterval(function() {
        displayDate(self);
    },1000);
}, function() {
    clearInterval(myVar);
});
而不是setInterval(“displayDate(this)”,100)


为什么在引号中有“displayDate(this)”?你不应该将字符串传递给setTimeout或setIntervalWatson是的,我给了你加1!感谢您传递jquery对象try obj.html(counter);这似乎是$引起的问题,除此之外,它与Mike的答案一样有效,谢谢!我想说这是100%正确的,删除引号触发了事件,但在第一次之后它就丢失了,这在迈克的评论之后是有意义的。谢谢大家,哇,多棒的社区啊!
$(".test").hover( function() {
    var self = this;

    myVar = setInterval(function() {
        displayDate(self);
    },1000);
}, function() {
    clearInterval(myVar);
});
$(".test").hover( function() {
var that = $(this);
setInterval(function () {
displayDate(that);

},100);