动态加载表后,在td上重新附加jquery函数
re-attaching jquery function on td after dynamically loading table
我是jQuery新手。我正在通过ajax加载一个表。在桌子里面我有一个开关。附加到它的点击事件不起作用。但如果表格已经存在,它就可以正常工作。由于ajax加载,onClick函数没有附加到它。代码如下所示
jQuery$(function() {
$(document).on('click', '.mytable .toggle', function () {
alert("toggle Clicked");
});
});
Html在ajax出现之前
<div class="tabs">
<ul class="tab-links" id="tab-links">
</ul>
<div class="tab-content" id="tab-content">
</div>
</div>
ajax后Html
<div class="tabs">
<ul class="tab-links" id="tab-links">
<li class="active"><a href="#tab1">Tab #1</a></li>
</ul>
<div class="tab-content" id="tab-content">
<div id="tab1" class="tab active" >
<table id="mytable1" class="mytable">
<tr data-depth="0" class="expand level0">
<td>
<span class="toggle expand">+</span>
Everything Else [<a class="link">99</a>]
</td>
<td> 1$</td>
</tr>
</table>
</div>
</div>
</div>
您的<span>
为空:
<span class="toggle expand"></span>
更改为:
<td>
<span class="toggle expand">Everything Else</span>
[<a class="link">99</a>]
</td>
当您尝试附件时,jQuery只能将事件处理程序附加到DOM中已经存在的元素上。
在您的示例中,一旦DOM中存在与.mytable .toggle
选择器匹配的元素,就需要附加click事件。目前,您是在页面加载时附加它们。此时元素不存在,这就是click处理程序永远不会附加的原因。
在AJAX完成回调将表插入DOM后,附加click处理程序。
答案就在问题中。我没有在我的代码中使用$(文档)。我使用$('.tab')。当我把它改成$(document)时,它开始工作了
相关文章:
- 附加 jQuery 代码以在加载和按钮单击时运行
- 用新的jQuery和jQuery ui替代.tabs(“添加”、链接、标题)
- 如何附加jquery-ui-autocomplete元素
- 附加jQuery's可调整大小的处理程序
- 2秒后删除新的jQuery预处理节点
- 附加jQuery的后动态输入
- 如何将新附加的元素存储到变量中
- jQuery/JavaScript:新附加行的 ids
- 检测并附加jQuery,如果没有加载纯Javascript和回退
- addClass 到变量并附加 jQuery
- 要将文本字段的光标从活动文本字段移动到新附加的文本字段,仅当活动文本字段已填充时,才从键盘按下回车键
- 在新类 jQuery 上启用可拖动
- 如何修复javascript在较新的jquery库上运行,但在较旧版本的jquery库上运行
- 为什么 $(':radio').change() 在新的 jQuery 中停止工作
- 关于新附加的HTML的Javascript window.print()问题
- css+jQuery样式.css切换器,用于新的jQuery版本
- 创建新的jQuery全局对象
- 带有附加JQuery&独自创立
- 将CSS设置添加到新的JQuery插件中
- 为新附加的元素找到合适的事件