jQuery函数问题

时间:2014-01-11 17:47:05

标签: javascript jquery

我在这里要做的是,如果选择等于值10,则只有当选择等于10时,单击功能才可用。但是当我改为其他前。具有不同值的类别无线电点击功能仍然可用。 ?

我有6个值为1,2,3,4,5,6的无线电盒,所以当我在类别10中时,如果值== 4滑入另一个div,我想做什么。(选择)。

我该如何解决这个问题?这是我的示例代码。

$('#category').on('change', function () {

    var selection = $(this).val();
    $('#slidedown'+selection).slideDown(200);

    if(selection == '10'){
        $("input:radio[name='checkbox']").click(function() {
            var radio = $(this).val();
            if(radio == '4' && selection == '10') {
                $('#slidedown'+selection).slideUp();    
            } else {
                $('#slidedown'+selection).slideDown();  
            }                    
        });
    });

谢谢,任何帮助都将不胜感激。

编辑:我想滑动当前div,如果选中值为4的单选框,则按类别值向下滑动。

2 个答案:

答案 0 :(得分:1)

selection回调中应该有另一个click var:

$('#category').on('change', function () {
    var selection = $(this).val();
    $('#slidedown'+selection).slideDown(200);            
});    

    $("input:radio[name='checkbox']").click(function() {
        var selection = $('#category').val();   //This does the trick
        var radio = $(this).val();
        if(radio == '4' && selection == '10') {
            $('#slidedown_another').slideUp();    
        } else {
            $('#slidedown_another').slideDown();  
        }                    
    });

此外,必须将回调分开,以便每次都不绑定新的侦听器

希望这会有所帮助。干杯

答案 1 :(得分:1)

使用disabled属性启用和禁用单选按钮。

$('#category').change(function() {
    var selection = $(this).val();
    $('#slidedown'+selection).slideDown(200);

    $('input:radio[name=checkbox]').prop('disabled', selection != '10');
});

$("input:radio[name='checkbox']").click(function() {
    var radio = $(this).val();
    if(radio == '4') {
        $('#slidedown_another').slideUp();    
    } else {
        $('#slidedown_another').slideDown();  
    }                    
});

当select具有正确的值时,您的代码正在添加处理程序,但当select选择更改为其他值时,它永远不会删除处理程序。此外,每次他们选择10时,都会添加另一个处理程序,因此处理程序会多次运行。