Javascript 使用jqueryappend和grailsrotefunction
在Grails中,remoteFunction的工作方式遇到了问题。我完全理解这是一个AJAX函数,但是我需要它是一个同步调用,而且似乎无法让asynchronous:false选项工作 代码: 当用户在屏幕左侧选择一个项目时,按钮事件会触发该事件。它运行一个服务方法并创建一个新块,将其返回到屏幕。然而,当上面的函数完成时,它重写了右边的div,删除了以前需要它附加新块时的div 如果remoteFunction是异步的,我将如何执行此操作Javascript 使用jqueryappend和grailsrotefunction,javascript,jquery,ajax,grails,Javascript,Jquery,Ajax,Grails,在Grails中,remoteFunction的工作方式遇到了问题。我完全理解这是一个AJAX函数,但是我需要它是一个同步调用,而且似乎无法让asynchronous:false选项工作 代码: 当用户在屏幕左侧选择一个项目时,按钮事件会触发该事件。它运行一个服务方法并创建一个新块,将其返回到屏幕。然而,当上面的函数完成时,它重写了右边的div,删除了以前需要它附加新块时的div 如果remoteFunction是异步的,我将如何执行此操作 谢谢 您最好只编写所需的jQuery代码,而不要试图让
谢谢 您最好只编写所需的jQuery代码,而不要试图让remoteFunction满足您的需求。一旦我把它从remoteFunction中分离出来,变成了一个直接的AJAX函数,我就让它工作起来了。我很想知道为什么它必须是同步的。现在它不需要是同步的。Grails remoteFunction on success确实
success:function(data,textStatus){jQuery('#right side').html(data)}
当我需要它时success:function(data,textStatus){jQuery('#right side')。append(data)}
当调用返回时,右边的所有元素都被完全替换。
function getNewBlock(){
var id = ${instance.id};
var $element = $('#elements ul li.selectedAdd');
$element.removeClass('selectedAdd');
${remoteFunction(
action:'createBlock',
update:'right-side',
asynchronous:false,
params:'\'id=\'+ escape(id)'
)};
//NEED TO APPEND THIS NEW BLOCK TO THE LIST OF BLOCKS ALREADY ON THE RIGHT
};