2009-01-28 88 views
0

我有3个div,每个(有效或无效)有2个可能的图像标签。如果一个div被点击激活,则其他div必须设置为不活动。我如何用img标签完成此操作,以及如果用户禁用javascript,会发生什么?jquery互斥点击

+0

您能否通过添加示例HTML来说明情况? – Ben 2009-01-28 02:45:47

+0

这种行为与上/下投票相同,但也有第三个箭头。 – zsharp 2009-01-28 03:18:09

回答

3

你的意思是这样的吗?

<div class="block" id="block1"> 
    <img src='inactive_block1.jpg'> 
</div> 

<div class="block" id="block2"> 
    <img src='inactive_block2.jpg'> 
</div> 

<div class="block" id="block3"> 
    <img src='inactive_block3.jpg'> 
</div> 

使用像jQuery库时,JavaScript将如下所示:

$(function() { 
    $('.block').click(function() { 
     $('#block1').find('img').attr('src', 'inactive_block1.jpg'); 
     $('#block2').find('img').attr('src', 'inactive_block2.jpg'); 
     $('#block3').find('img').attr('src', 'inactive_block3.jpg'); 
     $(this).find('img').attr('src', 'active_' + $(this).attr('id') + '.jpg'); 
    }); 
}); 

上述内容,如果你有inactive_block1.jpginactive_block2.jpginactive_block3.jpgactive_block1.jpgactive_block2.jpgactive_block3.jpg你应该得到你想要的。

它是否值得或不让javascript禁用回退,主要取决于您是否期望大量的用户禁用javascript。

1

如果用户禁用JavaScript,则无法执行基于JavaScript的动态修改页面的任何操作。您唯一的选择是创建一个“弃用”版本的功能,每次点击后需要一个页面请求。

我会推荐研究如何从DOM中的元素动态添加/删除类,这就是我将如何处理这个问题。您可以轻松地为所有在点击时处于“活动”状态的元素执行jQuery选择,并为它们设置一个“禁用”类,这样,除了您点击的元素之外,其他所有元素都会变黑。

这有道理吗?

+0

所以我会把所有的活动和不活动的图像标签在HTML中。并添加删除类来禁用它们?或者如上所述并在点击时指定src? – zsharp 2009-01-28 16:20:34