Javascript jquery代码工作正常,但其他单选按钮会干扰其工作

Javascript jquery代码工作正常,但其他单选按钮会干扰其工作,javascript,jquery,Javascript,Jquery,下面是两个jquery代码 代码1 $(document).ready(function() { $("div.imgDisp").hide(); $('[id="' + $(":radio:checked").val()+'"]').show(); $(":radio").click(function() { $("div.imgDisp").fadeOut('slow'); $('[id="' + $(this).val(

下面是两个jquery代码

代码1

$(document).ready(function() { 
    $("div.imgDisp").hide();
    $('[id="' + $(":radio:checked").val()+'"]').show();
    $(":radio").click(function() {      
        $("div.imgDisp").fadeOut('slow');
        $('[id="' + $(this).val()+'"]').fadeIn('slow');
    });
});
此代码在选择单选按钮时隐藏div 检查这把小提琴

在此小提琴中,您可以在name=“type”下看到一组收音机。在这之前一切都很顺利

在不同的名称下还有其他一组单选按钮。。现在的问题是,当我单击不同名称下的任何单选按钮时,尽管它们与此小提琴代码没有任何关系,但单击它们会使此小提琴的效果无效,并且此小提琴所需的效果消失。 i、 e.如果我点击除fiddle中显示的单选按钮以外的任何其他单选按钮,它们将隐藏显示的结果,而fiddle中的结果将保留在屏幕上。我很惊讶

我用来显示/隐藏文本文件的另一个jquery代码也存在同样的问题。。[我省略了另一个代码,因为该代码的问题也一样]


你们怎么了?提前感谢..

这里的问题是您正在为所有收音机调用click事件,即
$(“:radio”)。单击(function(){..
将click事件指定给那些只有
name=“type”
的收音机

试试这个

$('input[name="type"]:radio').click(function() {
    $("div.imgDisp").fadeOut('slow');
    $('[id="' + $(this).val()+'"]').fadeIn('slow');
});    
这将只调用name=“type”和radio的输入的click事件


fiddle

这里的问题是,您正在为所有收音机调用click事件,即
$(“:radio”)。单击(function(){..
将click事件指定给那些只有
name=“type”
的收音机

试试这个

$('input[name="type"]:radio').click(function() {
    $("div.imgDisp").fadeOut('slow');
    $('[id="' + $(this).val()+'"]').fadeIn('slow');
});    
这将只调用name=“type”和radio的输入的click事件


fiddle

你说“这里有两个jquery代码”,但你的问题中只包括“代码1”。你忘了包括“代码2”?
$(“:radio[name=type]”。单击(function(){
应该work@PeterHerdenborg我已经更新了不输入第二个代码的原因。与您的问题无关,但是
id
s必须是唯一的,两个元素不应该具有相同的id。@t.niese如果我使用唯一id,那么我如何才能获得所需的输出?因为我需要隐藏具有相同“某种值”的多个div(因此我在这里选择了相同的id)”。我已经知道该id应该是唯一的。但是这个id相同的代码正在工作。你说“这里有两个jquery代码”,但你的问题中只包括“代码1”。你忘了包括“代码2”?
$(“:radio[name=type]”。单击(function(){
应该work@PeterHerdenborg我已经更新了不输入第二个代码的原因。与您的问题无关,但是
id
s必须是唯一的,两个元素不应该具有相同的id。@t.niese如果我使用唯一id,那么我如何才能获得所需的输出?因为我需要隐藏具有相同“某种值”的多个div(因此我在这里选择了相同的id)“。我已经知道该id应该是唯一的。。但是这个具有相同id的代码正在工作。。我还将用
$('[id=“'+$(this.val()+'”])替换
('.'+$(this.val())
,即使用普通的jQuery“by id”选择器。@Peter Herdenborg这不起作用,因为id不是唯一的,有些元素具有相同的
id
@bipen它自动工作…令人惊讶的计算机。。thanks@Sumit我会用一个类来代替。而且,我认为“100”例如,如果您将选择器更改为
$('.c'+$(this.val())
很抱歉将您的答案淹没在@bipen:)中,我也会将
$('[ID=“'+$(this.val()+$)”)
替换为
$('.''+$(this.val()+')。.val())
,即使用普通的jQuery“by id”选择器。@Peter Herdenborg这不起作用,因为id不是唯一的,有些元素具有相同的
id
@bipen它自动工作…令人惊讶的计算机。。thanks@Sumit我会用一个类来代替。而且,我认为“100”,即所有数字作为ID和类名都是无效的。
..
可以做到这一点,例如,如果您将选择器更改为
$('.c'+$(this.val())
很抱歉,您的答案@bipen:)