仅针对jQuery中的第一次点击
问题描述:
我有这段代码,我只需要针对一行的第一次点击和其余的一般点击。仅针对jQuery中的第一次点击
$esCarousel.show().elastislide({
imageW : 240,
onClick : function($item) {
if(anim) return false;
anim = true;
// only in the FIRST CLICK click show wrapper (expected but don't work)
_addImageWrapper();
// on click show image
_showImage($item);
// change current
current = $item.index();
}
});
当我点击的项目,一切都很正常,但是当我再次点击我只需要“$ _showImage($项目);”而不是“_addImageWrapper();”。
你能帮我吗?我真的是一个新手关于js :(
更新: 当我关闭(关闭fadeOut)它不会再次打开!它必须是因为传送带已被点击...我怎么能“重置” ?点击帮助
$navClose.on('click.rgGallery', function(event) {
$('.rg-image-wrapper').fadeOut('2000');
return false;
});
谢谢,我学习这个(我认为:X)!
答
你可以设置一个变量的代码外:
var clickedCarousel = false;
$esCarousel.show().elastislide({
imageW : 240,
onClick : function($item) {
if(anim) return false;
anim = true;
// only in the FIRST CLICK click show wrapper (expected but don't work)
if(!clickedCarousel) {
_addImageWrapper();
clickedCarousel = true;
}
// on click show image
_showImage($item);
// change current
current = $item.index();
}
});
这是否合适你的需要?
UPDATE: 关于本次更新:
更新:当我关闭(有淡出关闭)它不会再次打开!这一定是因为传送带已经被点击了......我怎样才能“重置”点击?
fadeOut()采取这种形式的回调:
obj.fadeOut([duration] [, callback])
回调可能是一个内联函数或预定的,所以你可以使用这个(在线):
$navClose.on('click.rgGallery', function(event) {
$('.rg-image-wrapper').fadeOut(2000,function(){
clickedCarousel = false; // reset to false after fade out is complete
});
return false;
});
这是否帮助?
答
添加一个变量来跟踪它是否已被点击。
$(function() {
var alreadyClicked = false;
}
$esCarousel.show().elastislide({
imageW : 240,
onClick : function($item) {
if(anim) return false;
anim = true;
if (!alreadyClicked) {
alreadyClicked = true;
_addImageWrapper();
}
// on click show image
_showImage($item);
// change current
current = $item.index();
}
});
答
裹_addImageWrapper()
在if (!this.clicked)
条件,然后设置this.clicked = true;
什么是'elastislide()'呢?关于elastislide()的 – Purag 2012-02-17 23:08:41
- 是否重要?我们可以清楚地看到只有第一次点击才会触发的部分。它是否嵌套在名为“superwhatchamacallit”的函数中并不重要。也会好奇为什么downvote。一个新手正在问一个问题,答案会教他如何追踪一面旗帜。没有降低价值。 – 2012-02-17 23:33:24