当动态加载完成后,我该如何使用jquery添加一个class?

3
我需要给通过程序添加的<a>元素添加一个类。当我调用addClass时,它没有添加该类,我认为这是因为插件还没有完成所有的安装步骤,所以锚点还不存在。

页面链接在这里。这是顶部的登录栏。我想给登录和注册按钮添加一个类。

jQuery('.bp-login a').addClass('simplemodal-login');
jQuery('.bp-signup a').addClass('simplemodal-register');

那部分的HTML代码如下:
<ul class="main-nav">
<li class="bp-login no-arrow">
    <a href="http://nicolaelvin.com/community/wp-login.php?redirect_to=http%3A%2F%2Fnicolaelvin.com%2Fcommunity">Log In
    </a>
</li>
<li class="bp-signup no-arrow">
     <a href="http://nicolaelvin.com/community/register/">Sign Up
     </a>
</li>
...</ul>

你是否安装了一些插件,例如ActiveX控件,然后想要添加它们? - Adil
不,这是WordPress和一个插件加载,之后我想添加一些内容,但是它是类似的东西。 - Claire
我知道.on()这个方法,但我认为它只适用于事件。 - Claire
.on() 方法将事件处理程序附加到当前选择的元素集,但您必须检查文档控件是否准备就绪,并在 ready 方法中获得。 - Adil
哦,你的链接现在已经不再失效了。尽管有两个“登录”选项。左边会带我到WordPress登录页面,右边则有一个填写模态框。我猜是右边那个? - David Thomas
显示剩余6条评论
2个回答

2

尝试:

jQuery(function() {

    var modal_check = setInterval(function(){

        if(jQuery('.simplemodal-login').length > 1){
            clearInterval(modal_check);
            jQuery('.bp-login a').addClass('simplemodal-login');
            jQuery('.bp-signup a').addClass('simplemodal-register');
        }

    },100);

});​

此代码会等待DOM准备就绪,然后每10秒检查一次模态框插件是否已加载。一旦插件加载完成,它就会停止间隔并添加类。


我认为该插件应该有一些回调函数来处理此操作。 - ValeriiVasin
有没有任何 jQuery 事件可以代替 setInterval 使用? - Petr Peller
@PetrPeller提到的插件可能有一个onload回调函数,但如果不知道这一点,那么间隔是唯一的选择。 - iambriansreed

-1

你应该等待 DOM 加载完毕。

$(function () {
  $(element).addClass('hello');
});

1
那不起作用是因为该元素并非正常添加,而是使用jQuery完成的,因此我认为就jQuery而言,它已经完成了,实际上并未完成。如果你明白我的意思... - Claire

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接