Javascript 函数不适用于innerhtml
我有一个函数,可以在单击div类“close”时移动一些div。这在一开始可以很好地工作,但是我使用output.innerHTML编辑那些div的内容,当我这样做时,脚本在onclick上就不再工作了 Javascript: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) {
$(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)