我有一个 jquery 代码,它阻止链接转到该链接但执行它。我遇到的问题是,在执行脚本并且脚本返回数据后,我想将其替换为具有相同类的新脚本。替换是在 dom 内部进行的,但是下次我按下该链接时,不会阻止转到该链接,但类是相同的,这是我的代码:
<script>
$(".recomanda").click(function(e){
e.preventDefault();
var test=$(this);
var href = $(this).attr('href');
$.getJSON(href, function(data) {
if(data.recom==1)
{
$(test).replaceWith('<a class="recomanda" href="app/recomanda_produs.php?id=' + data.id + '&recom=' + data.recom + '">Recomandat</a> ');
}
if(data.recom==0)
{
$(test).replaceWith('<a class="recomanda" href="app/recomanda_produs.php?id=' + data.id + '&recom=' + data.recom + '">Recomanda</a> ');
}
});
});
</script>
html
<a class="recomanda" href="app/recomanda_produs.php?id='.$row['ID_Produs'].'&recom=0">Recomanda</a>
最佳答案
是的,我以前也遇到过这个问题,这是因为当你在ready()上附加click到recomanda时,但是当ajax加载时,ready()中的所有内容都不会再次触发,这就是为什么你需要附加事件到非动态元素,并让它找到它的子选择器。
$('body').on('click', '.recomanda', function() {});
关于javascript - Jquery .replaceWith 无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31207959/