通过js输出的html的div标签,为啥写的click事件无法操作呢?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了通过js输出的html的div标签,为啥写的click事件无法操作呢?相关的知识,希望对你有一定的参考价值。

$("body").prepend(" <div class=\"clothes\" id=\“clothes\”></div>
$("#closebtn").click(function()
$(this).parent.remove();
);

可能原因如下:

1、点击事件名称是onclick,请不要出现拼写错误。

2、事件后面的对应的是方法名称,请确认该方法已经正确定义或者没有出现方法名称的拼写错误,方法名后要加(),如form()。

3、更改标签的内容需要inner.html且确认以获取到需要更改的div。

onclick实例:

<html>
<body>

Field1: <input type="text" id="field1" value="Hello World!">
<br />
Field2: <input type="text" id="field2">
<br /><br />
点击下面的按钮,把 Field1 的内容拷贝到 Field2 中:
<br />
<button onclick="document.getElementById(\'field2\').value=
document.getElementById(\'field1\').value">Copy Text</button>

</body>
</html>

效果如下:

参考技术A 事件的绑定要元素创建成功后再执行,否则你通过$("#closebtn")找不到这个元素对象,自然就无法为这个新创建的对象绑定事件了。

另外,看你上面的代码,你追加的是DIV对应 的ID是clothes,但是你绑定的元素ID是closebtn,不知是否写错了?
如果没写错的话,请参照我上面的试去做。追问

绑定的元素是追加元素的子元素,我没有粘贴完全,
click事件是他们都在页面上显示之后才触发的,所以应该是已经创建了,但是就是没有反应,我用alert("");测试程序要跟就没有进去,不知为何呢?是不是通过js输出的标签不能附加click事件呢?

参考技术B 没有完整的东西,无法告诉你为什么, 请检查 1、是否引入jquery框架 2有没有ID是#closebtn的标签 2、 你点击到#closebtn 标签没有追问

你说的那三点我检查了没有问题,代码是二楼那个,基本上全了,帮忙看下

追答

......... 你还是没写全啊... aa () 你怎么调用的? 建议把这个效果代码全贴出来 包括 ..........................................

参考技术C 你给的代码里 哪有id为closebtn的div啊。我看你动态增加div的id是clothes不是closebtn。
你再确认一下吧。追问

是的 closebtn是clothes的子元素,两个都是div,我想点击子元素删除其父元素下所有内容,写法没有错的,但是click事件不起作用,请帮忙看看~~

追答

那你把代码贴全一点吧

追问

function aa()
$("body").prepend(" ")
$("#closebtn").click(function() $(this).patents.remove(); );

追答

function aa()
$("body").prepend(" sdf");
$("#closebtn").click(function()
alert(123);
);


你把
$("#closebtn").click(function()
alert(123);
);
写到aa的里面,你写到aa的外面了
写到aa里面是为了在点击增加div的时候同时绑定click事件。

本回答被提问者采纳

点击a元素显示对应的div,点击其他地方隐藏div或者显示对应div用js控制怎么写?为啥alert()没有输出?

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
<title>工作</title>
<style type="text/css">
.details
border: 1px green solid;
height: 300px;
background-color: yellow;
display:none;

</style>
<script type="text/javascript">
window.onload=function()
var details=document.getElementsByClassName("details");
for (var i=0;i<details.length;i++)
details[i].previousSibling.onclick=function()
alert(this.nextSibling.style.display);
if(this.nextSibling.getAttribute("style.diply")==null)
this.nextSibling.style.display="block";

else
this.nextSibling.style.display="none";

;

</script>
</head>

<body >
<div id="header">
</div>
<div id="content">
<ul class="ul-row">
<li><a>财务</a><div id="0" class="details" >02222</div></li>
<li><a>人事</a><div id="1" class="details">1</div></li>
<li><a>行政</a><div id="2" class="details">2</div></li>
</ul>
<ul class="ul-row">
<li id="0sds"><a id="a3" >生产</a><div id="3" class="details">3</div></li>
<li><a>餐饮</a><div id="4" class="details">4</div></li>
<li><a>建设</a><div id="5" class="details">5</div></li>
</ul>
<ul class="ul-row">
<li><a>送快递</a><div id="6" class="details">6</div></li>
<li><a>销售</a><div id="7" class="details">7</div></li>
<li><a>表演</a><div id="8" class="details">8</div></li>
</ul>
</div>
<div id="footer">
</div>
</body>

</html>

用document的onmousedown 响应鼠标在页面上的点击事件 IE中用event.srcElement; FF中用e.target; 能获得鼠标点击的对象 然后你判断该对象是否为选择城市的这个div 不是的话就隐藏该 div 我想怎么用jquery你应该知道 吧 $(document).mousedown( function(event) alert(event.target.id); //这样会弹出你单击的元素的id,你可以在这里写你的程序了 ); ); 参考技术A

引入jquery.js会比较好写点

$(function()
    $('a').click(function()
        $('#header').hide();
    );
);

以上是关于通过js输出的html的div标签,为啥写的click事件无法操作呢?的主要内容,如果未能解决你的问题,请参考以下文章

点击a元素显示对应的div,点击其他地方隐藏div或者显示对应div用js控制怎么写?为啥alert()没有输出?

为啥我用HTML写的网页加载不出来JavaScript的代码呢

为啥类名加标签在css样式里面无法使用

W3SCHOOL上为啥没有DIV教程?只看到了CSS教程,没有DIV教程.为啥???????

为啥 MediaInfo CLI 不允许我隔离“Inform='Other'”标签?

JS正则过滤指定的HTML标签