Javascript 函数不适用于innerhtml

Javascript 函数不适用于innerhtml,javascript,html,css,Javascript,Html,Css,我有一个函数,可以在单击div类“close”时移动一些div。这在一开始可以很好地工作,但是我使用output.innerHTML编辑那些div的内容,当我这样做时,脚本在onclick上就不再工作了 Javascript: $(function() { var open = true; $('.close').click(function() { if (open = true) {

我有一个函数,可以在单击div类“close”时移动一些div。这在一开始可以很好地工作,但是我使用output.innerHTML编辑那些div的内容,当我这样做时,脚本在onclick上就不再工作了

Javascript:

$(function()
{
       var open = true;
       $('.close').click(function() {
            if (open = true)
            {
                $("#upper").animate({'top' : '0px'}, {duration : 400});
                open = true;

                $("#lower").animate({'top' : '0px'}, {duration : 400});
                open = true;

                $("#filler").animate({'top' : '0px'}, {duration : 400});
                open = true;
            }
            else {
            }
       }); 
});
此外:

function enable() {
  var output = document.getElementById("passwordinfo");
  var sentence = '<h4>RE-ENABLE HMS MEDHOST ACCOUNT</h4>' + 
         '<div class="close" onclick="close()"></div>';
  var open = true;
  output.innerHTML = sentence;
}
函数启用(){
var output=document.getElementById(“密码信息”);
var语句='重新启用HMS医疗主机帐户'+
'';
var open=true;
output.innerHTML=句子;
}

函数“enable”在div中输入html,但是onclick of.close不再起作用。您知道我这里缺少什么吗?

在启用功能中,您可以重新添加单击事件:

function enable() {
var output = document.getElementById("passwordinfo");
var sentence = '<h4>RE-ENABLE HMS MEDHOST ACCOUNT</h4><div class="close" onclick="close()"></div>';
var open = true;
output.innerHTML = sentence;
$('.close').off('click')
$('.close').click(function()
    {
        ....
        ....
        ....
        ....
    }
}
函数启用(){
var output=document.getElementById(“密码信息”);
var语句=‘重新启用HMS医疗主机帐户’;
var open=true;
output.innerHTML=句子;
$('.close').off('单击')
$('.close')。单击(函数()
{
....
....
....
....
}
}

我可能无法工作,因为您在添加单击事件后添加了html。不要忘记使用.off('click'),否则当您第一次添加事件时,事件会对dom中已经存在的元素触发两次。在启用函数中,您可以重新添加单击事件:

function enable() {
var output = document.getElementById("passwordinfo");
var sentence = '<h4>RE-ENABLE HMS MEDHOST ACCOUNT</h4><div class="close" onclick="close()"></div>';
var open = true;
output.innerHTML = sentence;
$('.close').off('click')
$('.close').click(function()
    {
        ....
        ....
        ....
        ....
    }
}
函数启用(){
var output=document.getElementById(“密码信息”);
var语句=‘重新启用HMS医疗主机帐户’;
var open=true;
output.innerHTML=句子;
$('.close').off('单击')
$('.close')。单击(函数()
{
....
....
....
....
}
}

我可能无法工作,因为您在添加单击事件后添加了html。不要忘记使用.off('click'),否则当您第一次添加事件时,事件会对dom中已经存在的元素触发两次。在启用函数中,您可以重新添加单击事件:

function enable() {
var output = document.getElementById("passwordinfo");
var sentence = '<h4>RE-ENABLE HMS MEDHOST ACCOUNT</h4><div class="close" onclick="close()"></div>';
var open = true;
output.innerHTML = sentence;
$('.close').off('click')
$('.close').click(function()
    {
        ....
        ....
        ....
        ....
    }
}
函数启用(){
var output=document.getElementById(“密码信息”);
var语句=‘重新启用HMS医疗主机帐户’;
var open=true;
output.innerHTML=句子;
$('.close').off('单击')
$('.close')。单击(函数()
{
....
....
....
....
}
}

我可能无法工作,因为您在添加单击事件后添加了html。不要忘记使用.off('click'),否则当您第一次添加事件时,事件会对dom中已经存在的元素触发两次。在启用函数中,您可以重新添加单击事件:

function enable() {
var output = document.getElementById("passwordinfo");
var sentence = '<h4>RE-ENABLE HMS MEDHOST ACCOUNT</h4><div class="close" onclick="close()"></div>';
var open = true;
output.innerHTML = sentence;
$('.close').off('click')
$('.close').click(function()
    {
        ....
        ....
        ....
        ....
    }
}
函数启用(){
var output=document.getElementById(“密码信息”);
var语句=‘重新启用HMS医疗主机帐户’;
var open=true;
output.innerHTML=句子;
$('.close').off('单击')
$('.close')。单击(函数()
{
....
....
....
....
}
}
我可能不工作,因为在添加单击事件后添加了html。不要忘记使用.off('click'),否则,当您第一次添加事件时,事件会为dom中已经存在的元素触发两次。您应该在dom中使用或为动态添加的元素触发两次事件。如果

条件错误,也会触发

试试这个:

$(function()
{
       var open = true;
       $(document).on("click", ".close", function() {
            if (open)
            {
                $("#upper").animate({'top' : '0px'}, {duration : 400});
                open = true;

                $("#lower").animate({'top' : '0px'}, {duration : 400});
                open = true;

                $("#filler").animate({'top' : '0px'}, {duration : 400});
                open = true;
            }
            else {
            }
       }); 
});
对于DOM中动态添加的元素,应该使用或。如果
条件错误,则也应使用

试试这个:

$(function()
{
       var open = true;
       $(document).on("click", ".close", function() {
            if (open)
            {
                $("#upper").animate({'top' : '0px'}, {duration : 400});
                open = true;

                $("#lower").animate({'top' : '0px'}, {duration : 400});
                open = true;

                $("#filler").animate({'top' : '0px'}, {duration : 400});
                open = true;
            }
            else {
            }
       }); 
});
对于DOM中动态添加的元素,应该使用或。如果条件错误,则也应使用

试试这个:

$(function()
{
       var open = true;
       $(document).on("click", ".close", function() {
            if (open)
            {
                $("#upper").animate({'top' : '0px'}, {duration : 400});
                open = true;

                $("#lower").animate({'top' : '0px'}, {duration : 400});
                open = true;

                $("#filler").animate({'top' : '0px'}, {duration : 400});
                open = true;
            }
            else {
            }
       }); 
});
对于DOM中动态添加的元素,应该使用或。如果条件错误,则也应使用

试试这个:

$(function()
{
       var open = true;
       $(document).on("click", ".close", function() {
            if (open)
            {
                $("#upper").animate({'top' : '0px'}, {duration : 400});
                open = true;

                $("#lower").animate({'top' : '0px'}, {duration : 400});
                open = true;

                $("#filler").animate({'top' : '0px'}, {duration : 400});
                open = true;
            }
            else {
            }
       }); 
});

只是为了确保每个“上”、“下”和“填充”都只有一个,对吗?如果有多个当前JS将选择,则ID应该是唯一的(我想说它看到的第一个,但可能是最后一个)。同时丢失onClick您的jQuery正在类上运行,无论如何它都是不相关的,以后可能会混淆。此外,您正在检查open是否为true,然后将open设置为true,我假设您的意思是在关闭div后将其设置为false。最后open=true设置为open。您想要if(open==true)还是if(open)只是为了确保每个“上”、“下”和“填充”都只有一个,对吗?如果有多个当前JS将选择,则ID应该是唯一的(我想说它看到的第一个,但可能是最后一个)。同时丢失onClick您的jQuery正在类上运行,无论如何它都是不相关的,以后可能会混淆。此外,您正在检查open是否为true,然后将open设置为true,我假设您的意思是在关闭div后将其设置为false。最后open=true设置为open。您想要if(open==true)还是if(open)只是为了确保每个“上”、“下”和“填充”都只有一个,对吗?如果有多个当前JS将选择,则ID应该是唯一的(我想说它看到的第一个,但可能是最后一个)。同时丢失onClick您的jQuery正在类上运行,无论如何它都是不相关的,以后可能会混淆。此外,您正在检查open是否为true,然后将open设置为true,我假设您的意思是在关闭div后将其设置为false。最后open=true设置为open。您想要if(open==true)还是if(open)只是为了确保每个“上”、“下”和“填充”都只有一个,对吗?如果有多个当前JS将选择,则ID应该是唯一的(我想说它看到的第一个,但可能是最后一个)。同时丢失onClick您的jQuery正在类上运行,无论如何它都是不相关的,以后可能会混淆。此外,您正在检查open是否为true,然后将open设置为true,我假设您的意思是在关闭div后将其设置为false。最后open=true设置为open。您想要if(open==true)还是if(open)