动态生成的DOM元素中的JS方法不执行

yaotomo 2018-08-17 08:33:52
下拉选择地区之后,加载省下拉框,选择省后,加载市下拉框
这里的下拉框是ul,li结构
地区的下拉框

<div class="am-dropdown" id="divRegion" data-am-dropdown="">
<button class="am-btn am-dropdown-toggle" id="btnRegion" style="background-color:#fff" data-am-dropdown-toggle="">选择地区<span class="am-icon-caret-down"></span></button>
<ul class="am-dropdown-content" id="ulRegion">
<li nodeid="137697"><a href="javascript:;" onclick="setSelectedValue("btnRegion","东北")">东北</a></li>
<li nodeid="137698"><a href="javascript:;" onclick="setSelectedValue("btnRegion","华北")">华北</a></li>
<li nodeid="137699"><a href="javascript:;" onclick="setSelectedValue("btnRegion","西北")">西北</a></li>
<li nodeid="137700"><a href="javascript:;" onclick="setSelectedValue("btnRegion","华东")">华东</a></li>
<li nodeid="137701"><a href="javascript:;" onclick="setSelectedValue("btnRegion","华中")">华中</a></li>
<li nodeid="137702"><a href="javascript:;" onclick="setSelectedValue("btnRegion","华南")">华南</a></li>
<li nodeid="137703"><a href="javascript:;" onclick="setSelectedValue("btnRegion","西南")">西南</a></li>
</ul>
</div>

为每个地区的li添加click事件,点击append出省的下拉框

<div class="am-dropdown" id="divRegion" data-am-dropdown="">
<button class="am-btn am-dropdown-toggle" id="btnRegion" style="background-color:#fff" data-am-dropdown-toggle="">东北</button>
<ul class="am-dropdown-content" id="ulRegion">
<li nodeid="137697"><a href="javascript:;" onclick="setSelectedValue("btnRegion","东北")">东北</a></li>
<li nodeid="137698"><a href="javascript:;" onclick="setSelectedValue("btnRegion","华北")">华北</a></li>
<li nodeid="137699"><a href="javascript:;" onclick="setSelectedValue("btnRegion","西北")">西北</a></li>
<li nodeid="137700"><a href="javascript:;" onclick="setSelectedValue("btnRegion","华东")">华东</a></li>
<li nodeid="137701"><a href="javascript:;" onclick="setSelectedValue("btnRegion","华中")">华中</a></li>
<li nodeid="137702"><a href="javascript:;" onclick="setSelectedValue("btnRegion","华南")">华南</a></li>
<li nodeid="137703"><a href="javascript:;" onclick="setSelectedValue("btnRegion","西南")">西南</a></li>
</ul>
</div>
<span> > </span>
<div class="am-dropdown" id="divProvince" data-am-dropdown="">
<button class="am-btn am-dropdown-toggle" id="btnProvince" style="background-color:#fff" data-am-dropdown-toggle="">选择省<span class="am-icon-caret-down"></span></button>
<ul class="am-dropdown-content" id="ulProvince">
<li nodeid="133596"><a href="javascript:;" onclick="setSelectedValue("btnProvince","辽宁省")">辽宁省</a></li>
<li nodeid="133597"><a href="javascript:;" onclick="setSelectedValue("btnProvince","吉林省")">吉林省</a></li>
<li nodeid="133598"><a href="javascript:;" onclick="setSelectedValue("btnProvince","黑龙江省")">黑龙江省</a></li>
</ul>
</div>

生成省下拉的代码后,其中的setSelectedValue方法失效了,console控制台没有报错。
我将自动生成的代码粘贴到网页上单独执行是没有问题的
这是怎么回事?
...全文
463 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
yaotomo 2018-08-20
  • 打赏
  • 举报
回复
自己用其他方法实现了,谢谢各位老师
yaotomo 2018-08-17
  • 打赏
  • 举报
回复
引用 1 楼 foren_whb 的回复:
href="javascript:#"
或者
href="javascript:setSelectedValue('btnProvince','辽宁省');"
删掉onclick事件


本来用的href="javascript:setSelectedValue('btnProvince','辽宁省')"
不行才换成了onclick
另外把javascript:;改成javascript:# 也不行
丰云 2018-08-17
  • 打赏
  • 举报
回复
"不要滥用,
必要时用 ‘\’来转义
丰云 2018-08-17
  • 打赏
  • 举报
回复
href="javascript:#"
或者
href="javascript:setSelectedValue('btnProvince','辽宁省');"
删掉onclick事件
yaotomo 2018-08-17
  • 打赏
  • 举报
回复
引用 7 楼 sunjiyun26 的回复:
jquery 动态生成的用on 不大行,得重新绑定事件,onbind ,版本高的可能没有了,用$.parse重新解析一下动态生成的那段html


请教具体应该怎么做?
yaotomo 2018-08-17
  • 打赏
  • 举报
回复
引用 6 楼 sinat_34353062 的回复:

//jq写法
$(document).on("click", ".am-dropdown-content li", function() {
setSelectedValue(""btnRegion","东北"")
});


还是不行呢
我是老孙 2018-08-17
  • 打赏
  • 举报
回复
jquery 动态生成的用on 不大行,得重新绑定事件,onbind ,版本高的可能没有了,用$.parse重新解析一下动态生成的那段html
漠子凉 2018-08-17
  • 打赏
  • 举报
回复

//jq写法
$(document).on("click", ".am-dropdown-content li", function() {
setSelectedValue(""btnRegion","东北"")
});
yaotomo 2018-08-17
  • 打赏
  • 举报
回复
引用 4 楼 foren_whb 的回复:
[quote=引用 1 楼 foren_whb 的回复:]
href="javascript:#"
或者
href="javascript:setSelectedValue('btnProvince','辽宁省');"
删掉onclick事件

错了,
href="#"[/quote]

试过不行的
丰云 2018-08-17
  • 打赏
  • 举报
回复
引用 1 楼 foren_whb 的回复:
href="javascript:#"
或者
href="javascript:setSelectedValue('btnProvince','辽宁省');"
删掉onclick事件

错了,
href="#"

87,997

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧