Jquery 每次加载ajax之后

Jquery 每次加载ajax之后,jquery,ajax,Jquery,Ajax,我有几个类为“revstory”的div,还有更多是用ajax添加的。 prolem是,当ajax加载时,加载的div不受jquery脚本的影响 我还尝试将脚本添加到ajax文件中。 该函数工作2次 我已经用过ajaxComplete,现在它可以工作很多次了! 我已经试了一段时间了。希望有人能指导我找到正确的解决方案。 提前谢谢 <div id=#review class="revstory less"> </div> JavaScript: function sf

我有几个类为“revstory”的div,还有更多是用ajax添加的。 prolem是,当ajax加载时,加载的div不受jquery脚本的影响

我还尝试将脚本添加到ajax文件中。 该函数工作2次

我已经用过ajaxComplete,现在它可以工作很多次了! 我已经试了一段时间了。希望有人能指导我找到正确的解决方案。 提前谢谢

<div id=#review class="revstory less">
</div>

JavaScript:

function sf() {

    var less = '60px';
    var more = '300px';
    $('.revstory').each(function () {
        var rev = $(this);
        var h = this.scrollHeight;
        console.log(h);

        if (h > 70) {

            rev.css('height', less);
            rev.addClass("less");
            var l = rev.text();

            rev.text(l.substr(0, 155) + '..');

            // rev.after('<a id="more" class="item" href="#">Read more</a><br/>');
            // var link = rev.next();
        }


        rev.on('click', function () {

            if (rev.hasClass("less")) {
                rev.animate({
                    'height': h
                });
                rev.text(l.substr(0, 555));
                rev.removeClass("less");
            } else {
                rev.addClass("less");
                rev.animate({
                    'height': less
                });
                rev.text(l.substr(0, 155) + '..');
            }
            // rev.css('height', h);

            // alert(rev.attr('id'));
        });

    });
}
函数sf(){
无风险='60px';
var more='300px';
$('.revstory')。每个(函数(){
var rev=$(本);
var h=此高度;
控制台日志(h);
如果(h>70){
css版本(“高度”,小于);
修订版addClass(“更少”);
var l=版本文本();
修订文本(l.substr(0,155)+’…”;
//修订后(“
”); //var link=rev.next(); } 修订日期('点击',功能(){ 如果(修订版hasClass(“更少”)){ 牧师({ “高度”:h }); 修订文本(l.substr(0555)); 修订removeClass(“更少”); }否则{ 修订版addClass(“更少”); 牧师({ “高度”:小于 }); 修订文本(l.substr(0,155)+’…”; } //css版本(“高度”,h); //警报(版本属性('id')); }); }); }
我认为您可以更改这一行:

rev.on('click',function(){
致:


也许这可以工作

在函数中声明事件处理程序是不寻常的。尝试将
rev.on('click'
移出sf()函数,并将其替换为
$(文档)。on('click','revstory'

$(document).on('click', '.revstory', function() {
    var rev = $(this);                          // add this line, too
    if (rev.hasClass("less")) {
        rev.animate({
            'height': h
        });
        rev.text(l.substr(0, 555));
        rev.removeClass("less");
    } else {
        rev.addClass("less");
        rev.animate({
            'height': less
        });
        rev.text(rev.text().substr(0, 155) + '..'); // also update this
    }
    // rev.css('height', h);
    // alert(rev.attr('id'));
});

function sf() {    
    var less = '60px';
    var more = '300px';
    $('.revstory').each(function () {
        var rev = $(this);
        var h = this.scrollHeight;
        console.log(h);

        if (h > 70) {
            rev.css('height', less);
            rev.addClass("less");
            var l = rev.text();
            rev.text(l.substr(0, 155) + '..');
            // rev.after('<a id="more" class="item" href="#">Read more</a><br/>');
            // var link = rev.next();
        }
    });
}
$(document).on('click','.revstory',function()){
var rev=$(this);//也添加此行
如果(修订版hasClass(“更少”)){
牧师({
“高度”:h
});
修订文本(l.substr(0555));
修订removeClass(“更少”);
}否则{
修订版addClass(“更少”);
牧师({
“高度”:小于
});
rev.text(rev.text().substr(0155)+'..');//也更新此
}
//css版本(“高度”,h);
//警报(版本属性('id'));
});
函数sf(){
无风险='60px';
var more='300px';
$('.revstory')。每个(函数(){
var rev=$(本);
var h=此高度;
控制台日志(h);
如果(h>70){
css版本(“高度”,小于);
修订版addClass(“更少”);
var l=版本文本();
修订文本(l.substr(0,155)+’…”;
//修订后(“
”); //var link=rev.next(); } }); }
我可以,但除了发布更多正在工作的div之外,我什么也不做。在函数中声明事件处理程序是不常见的。尝试将
rev.on('click',function(){
移出您的sf()函数,并将其替换为
$(document)。on('click','.revstory',function(){
sf()不知道何时以及如何诊断问题是很困难的被调用。让我直说吧,你想让新元素也具有单击功能吗?是的,我想让新元素在被加载时折叠,然后单击时扩展,就像ajax加载之前的元素一样,但是你知道他使用的是哪个版本吗?你在逻辑上做出了很大的飞跃,认为jQuery的旧版本是他的问题.prolem是,.each会加载所有元素,但不会计算ajax加载后的新元素。因此,它们不会受到脚本的影响,只需再进行一次修订。但正如我所说,您必须向我们提供您的ajax调用和/或任何调用
sf()
以便诊断问题。谢谢,我将单击事件从功能中删除,现在它工作得很好!
$(document).on('click', '.revstory', function() {
    var rev = $(this);                          // add this line, too
    if (rev.hasClass("less")) {
        rev.animate({
            'height': h
        });
        rev.text(l.substr(0, 555));
        rev.removeClass("less");
    } else {
        rev.addClass("less");
        rev.animate({
            'height': less
        });
        rev.text(rev.text().substr(0, 155) + '..'); // also update this
    }
    // rev.css('height', h);
    // alert(rev.attr('id'));
});

function sf() {    
    var less = '60px';
    var more = '300px';
    $('.revstory').each(function () {
        var rev = $(this);
        var h = this.scrollHeight;
        console.log(h);

        if (h > 70) {
            rev.css('height', less);
            rev.addClass("less");
            var l = rev.text();
            rev.text(l.substr(0, 155) + '..');
            // rev.after('<a id="more" class="item" href="#">Read more</a><br/>');
            // var link = rev.next();
        }
    });
}