将我的事件处理程序绑定到哪个事件
Which event to bind my event handler to?
在我的HTML中,我有一个如下的表骨架:
<table>
<thead id="table-headings"></thead>
<tbody id="table-body"></tbody>
</table>
此外,我有一个<div id="content"></div>
,稍后将使用。
我使用$.ajax()
请求以动态方式用行和列填充表体。表中的每个单元格都填充了一个<a href="#">some link here</a>
。单击其中一个链接,就完成了对服务器的另一个$.ajax()
请求,并且应该将更多数据放入div#content
中。由于链接是动态加载的,所以我使用这样的事件委派:
$('#table-body').on('click', 'a', function(event) {
$.ajax({
// some settings here
success: function(response) {
// Append some data to the content div
$('#content').append(...);
}
});
});
所有这些都很好。现在,问题来了:我附加到div#content
的一些数据是由<pre></pre>
标记包围的html源代码。我想使用代码片段jQuery语法突出显示插件来突出显示此源代码。根据事件授权规则,这在理论上应该通过做来工作:
$('#content').on('...', 'pre', function(event) {
$(this).snippet('html');
});
我的问题是,我不知道我应该将事件处理程序绑定到哪个JavaScript事件。基本上,我只想在代码段加载后突出显示它们,但似乎没有适合这里的JavaScript事件,因为jQuery的load()
和ready()
方法用于不同的目的。如何突出显示动态加载的html代码?
您尝试过吗:
$('#table-body').on('click', 'a', function(event) {
$.ajax({
// some settings here
success: function(response) {
// Append some data to the content div
$('#content').append(...);
$('#content').find('pre').snippet('html');
}
});
});
您不需要任何事件。。。只需在ajax成功函数中使用find获取<pre>
标签在附加内容之后。。这边DOM元素将已经添加到文档中。。并且能够找到
success:function(response){
....//your stuff;
$('#content').find('pre').snippet('html');
}
为什么不试试:
$('#table-body').on('click', 'a', function(event) {
$.ajax({
// some settings here
success: function(response) {
// Append some data to the content div
$newElemement=$(response)
$('pre',$newElement).snippet('html')
$('#content').append($newElement);
}
});
});
相关文章:
- 在D3.js中,有没有任何方法可以将x和y方向上的滚动事件绑定到平移svg
- 如何在tinymce编辑器中将点击事件绑定到html标签
- 如何将事件绑定到从AJAX请求注入的HTML
- 将click事件绑定到AngularJS指令中的子元素
- Jquery将事件绑定到页面上的多个实例
- 事件绑定到动态创建的元素
- 使用jQuery进行事件绑定
- 如何将单击事件绑定到其他类
- 更改事件绑定's函数在页面加载时调用
- Jquery事件绑定获胜'当作为方法调用时不起作用,但当直接在控制台中调用时会起作用
- 动态创建的DOM元素上的jQuery事件绑定
- 我是否可以使用 Angular 将鼠标向上事件绑定到文档正文
- 将事件绑定到除 data-rel= BACK 之外的所有锚标记
- 将函数事件绑定到更改函数的复选框/标签
- 使用 Angular 和 UI-bootstrap 对模态事件绑定无法工作的指令
- 聚合物 - 将事件绑定到动态创建的元素
- 将事件绑定到其他UI组件's函数,在Kendo MVVM中
- jQuery Mobile——事件绑定
- JQuery无法将模糊事件绑定到所有<输入>页面中的元素
- 将点击事件绑定到新元素&使得ID'是独一无二的