2013-10-04 66 views
0

我正在开发一个本地网站的内容创建,我想使用JavaScript的双击功能。jQuery独立的divlclick事件内部和外部的div元素

当用户在名称/ ids bigwrapper或bigwrapper2中双击div外时,我想旋转全屏幕背景图像。当用户点击#bwwrapper或#bigwrapper2时,我想要.toggle();每一个隐藏/显示一个或另一个。

这里是我的更新的代码(感谢lordvlad)

$(function() { 
$("#bigwrapper").draggable(); 
$("#bigwrapper2").draggable(); 

var SacramentoBG = ['nightcap.jpg','Tower_Bridge_Sacramento_edit.jpg'], 
    counter =0;    

$('html').dblclick(function (event) { 
    if (event.target.id != "bigwrapper" && event.target.id != "bigwrapper2") { 
    counter = (counter+1) % SacramentoBG.length; 
    $('html').css('background-image', "url("+SacramentoBG[counter]+")"); 
} else { 
    $("#bigwrapper").toggle(); 
    $("#bigwrapper2").toggle();  
} 
}); 
}); 

UPDATE:下面的解决方案中添加“事件”部分帮助的功能里面,作为背景运转正常,但是#bigwrappers AREN按预期切换(其他条件)。请参阅:http://artfuladvection.com/project/NOAA/ndfdGraph/bloom.php想法?

谢谢!

+0

检查控制台,看看是否有任何错误!可能有一些有趣的东西在那里读。 – Streamside

+1

在此处可以正常工作... http://jsfiddle.net/SqRQ6/您可以复制 – PSL

+0

在为每个lordvlad的解决方案中的函数添加“事件”后,不会出现更多控制台错误。 @PSL:请参阅上面的网址。 – DrewP84

回答

0

为我工作的完整的答案是,我需要停止排除特定类别名称/ IDS,而是整个排除元素标签。或者,我可以使用if (event.target.TagName == 'BODY') {}

$('body').dblclick(function (event) { 
    if (event.target.tagName != 'DIV' && event.target.tagName != 'IMG' && event.target.tagName != 'TABLE' && event.target.tagName != 'HR' && event.target.tagName != 'SMALL') { 
     counter = (counter+1) % SacramentoBG.length; 
     $('html').css('background-image', "url("+SacramentoBG[counter]+")"); 
    } else { 
     $("#bigwrapper").toggle(); 
     $("#bigwrapper2").toggle();  
    } 
}); 
4

这是因为dblclick函数不知道event变量。试试这个

$('html').dblclick(function (event) { 
+0

谢谢!这有助于修复仅循环的背景,但#bigwrapper完全不是.toggle()。想法?网址如下:http://artfuladvection.com/project/NOAA/ndfdGraph/bloom.php – DrewP84