Py学习  »  Jquery

ajax删除先前定义的jquery并重新定义-jquery不处理ajax生成的内容

MikeL • 5 年前 • 1406 次点击  

第一个帖子,请温柔一点。

我正在开发一个社会类型页面,通过ajax prepend加载新的评论。 例如

<div class 'comment-said'> 
COMMENT HERE
<div class 'likes'>
<a class="react" data-id="<?=$comment->id?>" data-class="Like"><span> 
Like</span></a>
</div>
</div>

有一个javascript/jquery函数在页面加载时调用,以激活注释中的“like”按钮图释函数。

<script type='text/javascript'>
$('.react').Reactions({
postUrl: 'addlike.php'
});
</script>

$('.react')调用的“react.js”javascript文件的顶部部分。reactions({:

$.fn.Reactions = function(options) {        
var settings = $.extend( {            
postUrl: false, 
defaultText: "Like"                                 
}, options);        
var emo_value;      
var _data_html = '<div style="position:absolute; z-index: 999;" class="_emobar" data-status="hidden"><div class="_emolist">';       
var emojis  = '<img src="emos/Like.png" class="emo" data-emo-value="Like" style="" />';     
emojis = emojis + '<img src="emos/Love.png" class="emo" data-emo-value="Love" style="" />';     
emojis = emojis + '<img src="emos/LOL.png" class="emo" data-emo-value="LOL" style="" />';   

_data_html = _data_html + emojis;       
_data_html = _data_html + '<br clear="all" /></div></div>';     

$(_data_html).appendTo($('body'));

但是,随着新注释的动态添加,最初声明的 “$('.react')。反应({' 功能不起作用。

作为一个解决办法,我得重复一下 “$('.react')。反应({” 对添加的每个新注释调用函数。这是有效的,但它是在每个新注释中添加的复合词,如 反应 代码附加到 $(正文)

所以在ajax生成的注释中,每次ajax添加新的注释时,我都会得到多个'u emolist'div

<div class 'comment-said'> 
COMMENT HERE
<div class 'likes'>
   <a class="react" data-id="<?=$comment->id?>" data-class="Like"><span> Like</span>

<div class="_emolist" style="width: 250px;"><img src="emojis/Like.svg" class="emoji" data-emoji-value="Like" style=""><img src="emojis/Love.svg" class="emoji" data-emoji-value="Love" style=""><img src="emojis/LOL.svg" class="emoji" data-emoji-value="LOL" style=""><br clear="all"></div>
<div class="_emolist" style="width: 250px;"><img src="emojis/Like.svg" class="emoji" data-emoji-value="Like" style=""><img src="emojis/Love.svg" class="emoji" data-emoji-value="Love" style=""><img src="emojis/LOL.svg" class="emoji" data-emoji-value="LOL" style=""><br clear="all"></div>
<div class="_emolist" style="width: 250px;"><img src="emojis/Like.svg" class="emoji" data-emoji-value="Like" style=""><img src="emojis/Love.svg" class="emoji" data-emoji-value="Love" style=""><img src="emojis/LOL.svg" class="emoji" data-emoji-value="LOL" style=""><br clear="all"></div>

</a>
</div>
</div>

所以..

有没有办法让 “$('.react')。反应({' 打电话,然后对每个新项目再次声明?

我已经搜索过谷歌和这个网站,但找不到任何在这种情况下有效的东西

蒂亚,迈克

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/46802
 
1406 次点击  
文章 [ 1 ]  |  最新文章 5 年前