Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript var和函数以错误的顺序工作_Javascript_Jquery_Html - Fatal编程技术网

Javascript var和函数以错误的顺序工作

Javascript var和函数以错误的顺序工作,javascript,jquery,html,Javascript,Jquery,Html,我试图用下面的代码实现的是,当单击“生成”按钮时,如果选中了html变量,则执行一些操作-在本例中加载警报,但是从中可以看到它以完全相反的方式工作 为什么要这样做?我该如何解决它,使其按我所希望的方式工作?您可以看到,我还必须为另一个复选框执行此操作:) HTML: <div class="form-group formGroup10"> <div class="checkbox"> <label>

我试图用下面的代码实现的是,当单击“生成”按钮时,如果选中了
html
变量,则执行一些操作-在本例中加载警报,但是从中可以看到它以完全相反的方式工作

为什么要这样做?我该如何解决它,使其按我所希望的方式工作?您可以看到,我还必须为另一个复选框执行此操作:)

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>
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');
    }

    //});
});
你在做什么:

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


我还必须为另一个复选框这样做

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

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

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

这样做:

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

    //});
});
你在做什么:

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


我还必须为另一个复选框这样做

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

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

每次单击“生成”时都会绑定更改事件。你应该换成

var html     = $('#showInline');
var file     = $('#html');
html.change(function(){
   if($(this).is(':checked'))
   {
    alert('hello');
   }
});

$("#generate").click(function(){
   html.trigger('change')
});

每次单击“生成”时都会绑定更改事件。你应该换成

var html     = $('#showInline');
var file     = $('#html');
html.change(function(){
   if($(this).is(':checked'))
   {
    alert('hello');
   }
});

$("#generate").click(function(){
   html.trigger('change')
});
谢谢:)理解8分钟直到我能接受:)谢谢谢谢谢谢:)理解8分钟直到我能接受:)谢谢