jquery live event for added dom elements

耗尽温柔 提交于 2019-12-17 07:42:11

问题


I want to add a class to any DOM element that is on the page now or in the future that has a specified class and meets some criteria

so for some pseudo code

$('.location').live('load',function(){
    if($(this).find('input:first').val().substr(0,1) == "!"){ $(this).addClass('hidden')}
});

of course this does nothing

EDIT NOTE

this does not work either

$('.location').live('load',function(){
    alert('adding location');
});

回答1:


jQuery's live() feature is just subset of the livequery plugin, which is much richer. If you use livequery you could do something like..

$('.location').livequery(function() {
   // perform selector on $(this) to apply class   
});

That will cover existing elements plus any future elements added to the DOM.




回答2:


You can't do this.

You'll have to do:

$('.location').filter(function () {
    return ($(this).find('input:first').val().substr(0, 1) == "!");
}).addClass('hidden');

To apply it to all currently elements on the page, and then manually add the 'hidden' class to future elements you add to the DOM.




回答3:


The code .subtr(0,1) = "!" likely doesn't do what you want.



来源:https://stackoverflow.com/questions/3840149/jquery-live-event-for-added-dom-elements

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!