Jquery 每次加载ajax之后
我有几个类为“revstory”的div,还有更多是用ajax添加的。 prolem是,当ajax加载时,加载的div不受jquery脚本的影响 我还尝试将脚本添加到ajax文件中。 该函数工作2次 我已经用过ajaxComplete,现在它可以工作很多次了! 我已经试了一段时间了。希望有人能指导我找到正确的解决方案。 提前谢谢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
<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();
}
});
}