Javascript 使用AJAX刷新页面时运行onLoad脚本

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

我有一个jQuery,用于使项目可拖动:

$( ".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时,它不会在其上运行脚本。请你用一个恰当的答案解释这个答案,好像它是正确的,我无法标记它?