Javascript 使用AJAX刷新页面时运行onLoad脚本
我有一个jQuery,用于使项目可拖动:Javascript 使用AJAX刷新页面时运行onLoad脚本,javascript,php,jquery,html,ajax,Javascript,Php,Jquery,Html,Ajax,我有一个jQuery,用于使项目可拖动: $( ".draggable" ).draggable();}); 很好,你可以把单词拖来拖去 它通过运行脚本来工作,该脚本使用class=“draggable”将一些类名添加到任何跨度中,并在页面加载时执行此操作,因此它们如下所示: <span class="draggable ui-draggable" style="position: relative; left: -129.625px; top: -137.625px;">conf
$( ".draggable" ).draggable();});
很好,你可以把单词拖来拖去
它通过运行脚本来工作,该脚本使用class=“draggable”
将一些类名添加到任何跨度中,并在页面加载时执行此操作,因此它们如下所示:
<span class="draggable ui-draggable" style="position: relative; left: -129.625px; top: -137.625px;">confident</span>
自信
这个问题是按下绿色按钮会用AJAX刷新wordbank,它会调用一个新文件wordbank.php,每次按下它都会为您生成一个新的单词库
但是正因为如此,一旦刷新了AJAX,它就不会再次运行脚本,所以拖动就不起作用了
如何让脚本使用AJAX重新运行?通过检查新创建的元素,您可以看到它们缺少
ui可拖动类。您需要调用$(“.draggable”).draggable()再次编码>以绑定新的/动态元素
我认为最好的方法是在AJAX请求的success
或complete
回调中,您可以使用以下行:
$('.draggable:not(.ui draggable)).draggable()代码>
绑定任何新单词,但尚未具有ui可拖动类
因为您已经在使用jquery,所以应该利用它们的ajax方法:
function refreshWords()
{
$.ajax({
url: "wordbank.php",
success: function(data){
$("#wordbank").html(data);
$('.draggable:not(.ui-draggable)').draggable();
}
});
}
您可以尝试使用:
$('#yourDivId').load("yourPhpUrl.php",function(){
//the code you want to run after the ajax was completed running
$( ".draggable" ).draggable();
});
我不确定我是否理解您需要什么,但您可以附加一个函数,在加载完成后可以再次运行脚本。只需在ajax调用中使用回调函数,本文顶部的代码行不会影响后面加载的任何内容。因此,当您使用AJAX调用刷新wordbank时,它不会在其上运行脚本。请你用一个恰当的答案解释这个答案,好像它是正确的,我无法标记它?