javascript:淡出但可单击

javascript:淡出但可单击,javascript,jquery-mobile,Javascript,Jquery Mobile,我正在构建一个JQM应用程序,我有一些JS问题,我确信这些问题很容易解决,但我对JS了解不多 1) 我把div放在一个图像的顶部,该图像链接到多个图像。因此,当应用程序加载div时,div是可见的,然后逐渐消失。问题是我希望它们仍然可以点击,并且在它们不可见时链接到其他图像 代码 简单,但我只想让他们不可见,并保持链接 2) 我的第二个问题是,我有一个声音文件可以在加载时播放,还有两个图像可以打开和关闭声音文件。我所做的代码只会更改主页上的图像,不会在任何其他页面上工作(打开和关闭声音可以工作,

我正在构建一个JQM应用程序,我有一些JS问题,我确信这些问题很容易解决,但我对JS了解不多

1) 我把div放在一个图像的顶部,该图像链接到多个图像。因此,当应用程序加载div时,div是可见的,然后逐渐消失。问题是我希望它们仍然可以点击,并且在它们不可见时链接到其他图像

代码

简单,但我只想让他们不可见,并保持链接

2) 我的第二个问题是,我有一个声音文件可以在加载时播放,还有两个图像可以打开和关闭声音文件。我所做的代码只会更改主页上的图像,不会在任何其他页面上工作(打开和关闭声音可以工作,但图像不会更改)

代码


从jQuery手册:

.fadeOut()方法为匹配元素的不透明度设置动画。不透明度达到0后,“显示样式”属性将设置为“无”,因此该元素不再影响页面的布局

如果在
fadeOut()
完成后,将
display
属性设置回
inline
block
,元素将保持可单击状态。可以使用
fadeOut()
complete
参数执行此操作。像这样的方法应该会奏效:

$(".link").fadeOut('slow', function(){
    $(".link").css({"display":"inline"});
});

当.fadeOut为complete时,元素
显示
为none且不可单击。您应该更改元素显示属性,并通过
可见性
属性将其隐藏。我会这样做:

$(".link").fadeOut('slow', function(){
    //animation complete callback
    $(this).show().css('visibility', 'hidden');
});

你能给我们一些建议吗?这个函数可能比淡出更好:
$('.link').animate({opacity:0},2000,callback)
这样,
.link
仍然存在,只是不可见。此外,如果您使用jQuery,您的
文档.getElementBy…
内容可能应该替换为
$(“#sound”).attr('src')
,类似地,不透明度应该已经为0,因此无需使用
可见性再次隐藏它。无论哪种方式都可以正常工作是的,这是事实,但是当您手动更改
显示时,您会丢失旧的
显示值,该值是在淡出元素之前设置的。
$(".link").fadeOut('slow', function(){
    $(".link").css({"display":"inline"});
});
$(".link").fadeOut('slow', function(){
    //animation complete callback
    $(this).show().css('visibility', 'hidden');
});