我有几个带有“revstory”类的div,还有更多带有ajax的div。 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'));
});
});
}
答案 0 :(得分:0)
在函数内声明事件处理程序是不常见的。尝试将rev.on('click'
移出sf()函数并将其替换为$(document).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();
}
});
}
答案 1 :(得分:-1)
我认为你改变了这一行:
rev.on('click',function(){
要:
rev.live('click',function(){
也许这可以起作用