【问题标题】:Manual check an checkbox and using jquery fire trigger手动检查复选框并使用 jquery 触发触发器
【发布时间】:2012-12-03 15:00:13
【问题描述】:

我有一些代码:

$(document).ready(function(){
    $("#a").click(function(){
        $("#b").trigger("click");
    });

    $("#b").click(function(){
        alert($("#b").prop("checked"));
    });
});

这里是 HTML 代码:

<form>
    <input type="checkbox" id="a"></input>
    <input type="checkbox" id="b"></input>
</form>

如果手动单击“b”复选框,它将显示“true”,但如果选中“a”,它将显示“false”,然后将 b 的属性检查更改为 true。

谁能告诉我如何检查 b 的当前属性。我必须从 a 和本身触发事件检查 b,但是当这样做时,我无法检查 b 是否被检查

【问题讨论】:

    标签: javascript jquery click checkbox checked


    【解决方案1】:
    $(document).ready(function() {
        $("#a").click(function() {
            $("#b").prop("checked", true);
        });
    });
    

    【讨论】:

    • :-?那么复选框b会触发点击事件本身吗?我在这里需要的是,当我单击 a 或自身时,b 必须触发 jQuery click 事件句柄,并且在 b 事件句柄上它必须是已检查属性的新值
    【解决方案2】:

    只需使用 setTimeout。它给 b 足够的时间在显示警报之前进行检查:

            $(document).ready(function(){
                $("#a").click(function(){
                    $("#b").click();
                });
    
                $("#b").click(function(){
                    setTimeout('alert($("#b").prop("checked"));',0);
                });
            });
    

    【讨论】:

    • 好主意,但在我的情况下似乎无法使用,这是基于 b 元素的事件句柄中的很多代码操作,我想知道如何将其分离以指定功能,但是当我尝试时不能调用该分离函数....怎么样,如何在执行任何操作之前获取更新的值:-?
    【解决方案3】:

    是的,这比我想象的要容易。只需将 Click 事件更改为 Change 事件,在 Change 之前单击触发,因此在 Change 事件中我可以获得新值而不能在 Click 事件中

    【讨论】:

    • 嗯,不知道为什么,但是当更改为使用更改事件句柄时,我必须触发触发 Click 事件,而不是更改为复选框的正确状态
    猜你喜欢
    • 1970-01-01
    • 2012-05-03
    • 1970-01-01
    • 1970-01-01
    • 2017-11-09
    • 1970-01-01
    • 1970-01-01
    • 2018-01-19
    • 2011-08-25
    相关资源
    最近更新 更多