在页面加载和单击链接时触发jQuery函数?

时间:2011-08-23 05:01:02

标签: jquery

我正在使用此功能:

$(document).ready(function() {

$('.gdthumbtext')
.contents()
.filter( function(){
    return this.nodeType == 3;
}).each(function(){
    this.nodeValue= this.nodeValue.replace(/\+/g,'');
});

});

删除.gdthumbtext div中数字前的加号。 现在的问题是,每次单击链接时,数字都会随ajax而变化 课程.gdt-starrating.

我想我必须在点击链接时再次调用(或调用)该功能。

也许我需要这样的事情:当页面加载时调用该函数或>当单击类.gdt-starrating的链接时调用该函数。

有关如何做到这一点的任何建议吗?

2 个答案:

答案 0 :(得分:1)

您可以将代码移动到它自己的函数中,调用该函数onload然后在每次单击链接时继续调用该函数。像这样:

$(document).ready(function() {
    // Call cleanup onload
    stripPlusSigns();

    $('a.gdt-starrating').click(function() {
        // Do stuff here...
        // ...

        // Strip plus signs again
        stripPlusSigns();
    });
});

function stripPlusSigns()
{
    $('.gdthumbtext')
        .contents()
        .filter( function(){
             return this.nodeType == 3;
        }).each(function(){
             this.nodeValue= this.nodeValue.replace(/\+/g,'');
        });

    return true;
}

答案 1 :(得分:0)

你有正确的想法。

加载ajax内容后,您应该在ajax Sucess上运行它。我已经包含了click和ajax。

$(document).ready(function() {

    // run on page load
    removeSigns();

    // you could run on ajax load
    $('.gdt-starrating').bind('click', function() {
        removeSigns();
    });

    // you should be running it on Ajax success callback
    $.ajax({ 
            // your normal ajax stuff...

        success : function() {
            removeSigns();
        } 
    });

});


function removeSigns() {
    $('.gdthumbtext')
    .contents()
    .filter( function(){
        return this.nodeType == 3;
    }).each(function(){
        this.nodeValue= this.nodeValue.replace(/\+/g,'');
    }

); }