Javascript 通行证;这";函数似乎不起作用
我有一个功能:Javascript 通行证;这";函数似乎不起作用,javascript,jquery,Javascript,Jquery,我有一个功能: function test(e){ $('.movie').find('.moreInfo').removeClass('moreInfoShow'); e.parent().find('.moreInfo').addClass('moreInfoShow'); $("#movieBox").isotope('reLayout'); e.parent().find('.moreInf
function test(e){
$('.movie').find('.moreInfo').removeClass('moreInfoShow');
e.parent().find('.moreInfo').addClass('moreInfoShow');
$("#movieBox").isotope('reLayout');
e.parent().find('.moreInfo').css("opacity", "0");
e.parent().find('.moreInfo').animate({opacity: 1}, 500);
}
其名称为:
$("#movieBox").on('mouseover', '.moviePoster', function(event){test($(this));});
问题是我希望在页面加载时调用该函数。我需要将“this”传递给函数,但我没有运气让它工作
这就是我期望的工作:
test($(".moviePoster").first());
(所有代码都在“$(document).ready”函数中)W/O fiddle:
更改此项:
$("#movieBox").on('mouseover', '.moviePoster', function(event){test($(this));});
到
那么$(this)insidetest函数应该指向触发事件的jQuery对象
使用“test($(this))”在回调中调用test函数将立即执行该函数,而不是在触发事件时执行
更新:
完成此操作后,当然需要在页面加载时触发mouseover事件。
见Jashwant关于如何做到这一点的评论
我错了
function(event){test($(this));}
当然不会立即触发回调函数。这只有在如下情况下才会发生:
$("#movieBox").on('mouseover', '.moviePoster', test($(this)));
对不起 W/O小提琴:
更改此项:
$("#movieBox").on('mouseover', '.moviePoster', function(event){test($(this));});
到
那么$(this)insidetest函数应该指向触发事件的jQuery对象
使用“test($(this))”在回调中调用test函数将立即执行该函数,而不是在触发事件时执行
更新:
完成此操作后,当然需要在页面加载时触发mouseover事件。
见Jashwant关于如何做到这一点的评论
我错了
function(event){test($(this));}
当然不会立即触发回调函数。这只有在如下情况下才会发生:
$("#movieBox").on('mouseover', '.moviePoster', test($(this)));
对不起 如注释中所述,在页面加载时触发
mouseover
事件
$("#movieBox").find('.moviePoster').trigger('mouseover');
如注释中所述,在页面加载时触发
鼠标悬停事件
$("#movieBox").find('.moviePoster').trigger('mouseover');
请提供一个答案。如果我没有弄错你的问题,请执行$(“#movieBox”)。查找('.moviePoster')。触发('mouseover')代码>页面加载。$(此)已成功传递。请查看如果您希望此
引用.moviePoster
元素,则您的代码是正确的。如果您的代码不工作,那么还有其他一些问题。您没有描述是什么原因使您相信此
不是您想要的元素。你应该展示你的HTML。是的,它确实引用了。电影海报,我应该重新措辞我的问题。因为有很多电影海报元素,所以扳机不起作用。即使这样也不行:$(“#movieBox”).find('.moviePoster').first().trigger('mouseover');原因可能是什么?请提供答案。如果我没有弄错您的问题,请执行$(“#movieBox”)。查找('.moviePoster')。触发('mouseover')代码>页面加载。$(此)已成功传递。请查看如果您希望此
引用.moviePoster
元素,则您的代码是正确的。如果您的代码不工作,那么还有其他一些问题。您没有描述是什么原因使您相信此
不是您想要的元素。你应该展示你的HTML。是的,它确实引用了。电影海报,我应该重新措辞我的问题。因为有很多电影海报元素,所以扳机不起作用。即使这样也不行:$(“#movieBox”).find('.moviePoster').first().trigger('mouseover');原因可能是什么?这不对。在回调中调用test
不会立即执行它。它将在触发事件时被调用。这就是为什么会有一个事件处理程序。它会在事件发生时处理它。实际上,我以前就有过你建议的方式,但它似乎没有通过“这个”,或者可能是另一个问题。当函数被调用时,它应该是双向工作的,这就是问题所在。灰色状态即将到来:jsfiddle认为,我是对的:或者我遗漏了什么?灰色状态即将到来你是对的。查看我的更新。谢谢,对不起:)这不对。在回调中调用test
不会立即执行它。它将在触发事件时被调用。这就是为什么会有一个事件处理程序。它会在事件发生时处理它。实际上,我以前就有过你建议的方式,但它似乎没有通过“这个”,或者可能是另一个问题。当函数被调用时,它应该是双向工作的,这就是问题所在。灰色状态即将到来:jsfiddle认为,我是对的:或者我遗漏了什么?灰色状态即将到来你是对的。查看我的更新。谢谢,对不起:)