javascript - var 和 function 以错误的顺序工作

标签 javascript jquery html

我试图用下面的代码实现的是,当单击生成按钮并且检查 html 变量时,然后执行某些操作 - 在这种情况下加载警报,但是从这个 fiddle 你可以看到它以完全相反的方式工作。

为什么要这样做?我该如何解决它才能按照我想要的方式工作 - 你可以看到我也必须为另一个复选框执行此操作:)

HTML:

    <div class="form-group formGroup10">
            <div class="checkbox">
                <label><input id="html" type="checkbox" value="">
                <strong>Download as a HTML file</strong></label>
                <br/>
            <label><input id="showInline" type="checkbox" value="">
            <strong>Show as HTML Code</strong></label>
            </div>
            <br/>
            <button type="button" id="generate" class="btn btn-primary formButton10">Generate</button>
        </div>

JS:

var html     = $('#showInline');
    var file     = $('#html');

    $("#generate").click(function(){
        html.change(function(){
        if($(this).is(':checked'))
        {
            alert('hello');
        }

        });
    });

最佳答案

不需要有更改事件。您可以将其删除以进行工作。

使用这种方式:

$("#generate").click(function(){
    //html.change(function(){
    if(html.is(':checked'))
    {
        alert('hello');
    }

    //});
});

你在做什么:

您正在click 事件中绑定(bind)change 事件。因此,当您第一次单击它时,它会在 html 上注册更改事件。

<小时/>

我也必须为另一个复选框执行此操作

为此,您可以将其简化为:

$("#generate").click(function(){
    if($(this).closest('.form-group').find('input[type="checkbox"]:checked').attr('id') === "showInline")
    {
        alert('showInline');
    }else{
        alert('html');
    }
});

关于javascript - var 和 function 以错误的顺序工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32350701/

相关文章:

javascript - sveltejs 中的响应式全宽 Canvas

javascript - 根据父 w/jQuery 调整宽度

javascript - 如何使用 JQuery 从 url 中删除部分字符串?

java - 如何在 Android 上将 xml 转换为 html?

javascript - 如何链接到 Javascript 创建之前不存在的 anchor 标记?

javascript - 需要一种方法来禁用 IE9 浏览器缓存

javascript - DataTables 正则表达式搜索无法按预期精确匹配

javascript - 加入并缩小第三方 javascript 库

javascript - emacs 更好的 js 语法高亮

javascript - jQuery Event.Target 供调用者引用