如何创建一个可以处理未来元素的函数
How to create a function which can work on future elements?
假设我有一个为元素添加边框的函数:
$.fn.border = function() {
$(this).css('border', '1px solid red');
}
我已准备好添加到我的文档中:
$(document).ready(function() {
$('.elem').border();
});
这将正常工作,但是现在如果我需要通过 ajax 将其他元素添加到 dom,它们将不会获得边框。有没有办法将其委托给未来的元素?
与此点击事件类似:
$('div').on('click', 'a', function() {
// do something
})
您可以在每次 DOM 修改后运行代码并创建边框
$(document).on("DOMSubtreeModified", function() {
$('.elem').border();
});
您需要为这些元素分配一个类,通过该类,它们将自动具有此样式。
(function createBorderClass()
{
var style = document.createElement('style');
style.type = 'text/css';
style.innerHTML = '.elem{ border: 1px solid red; }';
document.getElementsByTagName('head')[0].appendChild(style);
})();
现在,您只需要确保从 AJAX 响应创建的元素具有此类。
你可以通过做
(function createBorderClass(selector, prop, value)
{
var style = document.createElement('style');
style.type = 'text/css';
style.innerHTML = selector+ '{ ' + prop + ': ' + value + ' }';
document.getElementsByTagName('head')[0].appendChild(style);
})(".elem", "border", "1px solid red");
相关文章:
- 可以't让我的if语句处理js中的html表单输入
- keyup事件处理程序更改焦点不适用于快速键入
- 如何使用jquery处理php循环通过元素
- angular.js没有'无法在PhoneGap中处理视图标记
- Webpack/Rect:遵循egghead.io教程,但出现错误:您可能需要一个合适的加载程序来处理此文件类型
- 提示使用服务器端事件处理程序激活JavaScript
- javascript:如何在antlr生成的Lexer中进行错误处理
- 如何编写一个具有公共标头的批处理
- 在同一个服务工作者中处理service-worker.js有任何影响吗
- 如何处理node.js节点mongodb中的连接和查询队列
- 通过命令行/批处理文件打开页面时,将javascript代码注入Google Chrome
- 如何处理10页以上的静态页眉/页脚
- 将事件处理程序绑定到任何可能的事件
- 通过ajax将坐标传递到php服务器端,并在处理后检索到javascript
- python到“;流“;字典处理
- 使用javascript进行实时图像处理
- 如何创建一个可以处理未来元素的函数
- Javascript:替换 html 中的字符串,而不破坏未来事件处理程序的元素
- 使用 JavaScript Date 对象处理未来和过去的日期和时间
- jQuery .on('click')不能处理未来添加的元素