当div状态改变时改变输入

时间:2011-05-17 14:32:30

标签: javascript jquery

我有这个div和这个输入:

<fieldset>
    <input/>
    <label></label>
    <div class="toggle_box">
        <div class="switch"></div>
    </div>
</fieldset>

checked的状态发生变化时,我希望输入为<div class="switch"></div>

<fieldset>
    <input checked="checked" />
    <label></label>
    <div class="toggle_box">
        <div class="switch" state="on"></div>
    </div>
</fieldset>

知道如何使用jQuery做到这一点? 谢谢:))

2 个答案:

答案 0 :(得分:1)

根据您的代码:pastebin.com/rjWc9i6f

每当您将div状态设置为on时,也请选中该复选框。这真的很简单。您可以更轻松地使用函数进行管理:

function SetState($switch, on)
{
    $switch.attr("state", on ? "on" : "off");
    $switch.closest("fieldset").find("input:checkbox").attr("checked", on);
}

并像这样调用此函数:

SetState($(".switch"), true);

或来自.toggle_box div

的上下文
SetState($(this).find(".switch"), true);

或使用您的target变量:

SetState(target, true);

答案 1 :(得分:1)

Salut SnippetSpace!
我在这里准备了 JSFiddle D E M O

希望这会有所帮助 ciao et bonne的机会! :)

顺便说一句,
我用过:

$.fn.toggleChkBx = function() {
    if ($('.switch').attr('state') == 'on') { 
        $(this).attr('checked', !$(this).find(':input').attr('checked')); 
    }
}

并将其称为Ex。: $('。some_Element')。click(function(){....

 $(this).parent().find(':input').toggleChkBx(); // RUN OUR fn