admin管理员组文章数量:1391947
I want to call a function over specific elements on my DOM, for example:
$(".red").css({backgroundColor: "pink"});
It works ok for any element already existing into the DOM, but I also want to this method to be called in elements dynamically added to the DOM.
I've tried things like:
$(".red").on(function(){ this.css({backgroundColor: "pink"}) });
or:
$(".red").on("load", function(){ this.css({backgroundColor: "pink"}) });
But not any success.
Check the jsFiddle
Update
The .css()
call is just an example I actually want to call other kind of functions
I want to call a function over specific elements on my DOM, for example:
$(".red").css({backgroundColor: "pink"});
It works ok for any element already existing into the DOM, but I also want to this method to be called in elements dynamically added to the DOM.
I've tried things like:
$(".red").on(function(){ this.css({backgroundColor: "pink"}) });
or:
$(".red").on("load", function(){ this.css({backgroundColor: "pink"}) });
But not any success.
Check the jsFiddle
Update
The .css()
call is just an example I actually want to call other kind of functions
-
1
Sorry, there's no easy or clean way of doing this cross-browser, assuming you're actually doing something other than
.css
. – Kevin B Commented Sep 5, 2013 at 18:57 - 1 Was cross-browser mentioned in the question? – Robert Harvey Commented Sep 5, 2013 at 18:58
-
6
Why don't you just add
background-color: pink;
to your CSS for the.red
rule? – Ian Commented Sep 5, 2013 at 18:58 - 2 jsfiddle/j08691/22kwt/1 – j08691 Commented Sep 5, 2013 at 18:59
- No, there is not a generic way to call any function on all DOM elements, even those dynamically added. There are ways in code to set styles that apply to all elements. Please explain what you are trying to do. – Dark Falcon Commented Sep 5, 2013 at 19:05
2 Answers
Reset to default 7You were close. Try:
$(document).on("load", ".red", function(){ this.css({backgroundColor: "pink"}) });
Oops, that doesn't work. This does http://jsfiddle/4Bv9r/
$('body').on('DOMNodeInserted', ".red", function(){ $(this).css({backgroundColor: "pink"}) });
If you know the element is going to be added dynamically, the best way should be adding the rules to a stylesheet.
OR you can create style dynamically,
$("<style>").text(".red { background-color: pink; }").appendTo("head");
OR
Add this in your page <style id='d_style'></style>
then
$('#d_style').text(".red { background-color: pink; }");
本文标签:
版权声明:本文标题:javascript - How to call a function in every element in the DOM even if they are dynamically created - Stack Overflow 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.betaflare.com/web/1744667725a2618634.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论