jQuery UI可拖动不';使用ajax内容刷新时不会注入
基本上我用一些可拖动的元素设置了一个页面,效果很好 我刚刚添加了一个ajax内容刷新,每10秒刷新一次div,元素在其中 执行此操作后,可拖动功能不再工作 我认为这是因为正在刷新的元素位于单独的页面上,然后使用ajax加载到索引中 我如何解决这个问题 多谢各位jQuery UI可拖动不';使用ajax内容刷新时不会注入,jquery,ajax,jquery-ui,Jquery,Ajax,Jquery Ui,基本上我用一些可拖动的元素设置了一个页面,效果很好 我刚刚添加了一个ajax内容刷新,每10秒刷新一次div,元素在其中 执行此操作后,可拖动功能不再工作 我认为这是因为正在刷新的元素位于单独的页面上,然后使用ajax加载到索引中 我如何解决这个问题 多谢各位 基本HTML(此处无特殊内容) Notes.php 出于所有目的,本文只包含一个带有class=“postbit”的div希望对您有所帮助 将所有事件绑定器放在一个函数中,然后调用该函数: function wrapper(){ $(
基本HTML(此处无特殊内容) Notes.php 出于所有目的,本文只包含一个带有class=“postbit”的div希望对您有所帮助 将所有事件绑定器放在一个函数中,然后调用该函数:
function wrapper(){
$('.postit').draggable(
{
start: function(){
$(this).css("z-index", a++);
},
stop: function(){
var offset = $(this).offset();
var xPos = offset.left;
var yPos = offset.top;
var pid = $(this).attr('id');
var datastring = 'xpos=' + xPos + ' ypos=' + yPos + ' id=' + pid;
$.ajax({
type: "POST",
url: "savepositions.php",
datatype: "text",
data: {positions: datastring}
});
}
});
$('.postit').click(function(){
$(this).addClass('top').removeClass('bottom');
$(this).siblings().removeClass('top').addClass('bottom');
$(this).css("z-index", a++);
});
}
然后:
然后在ajax成功函数调用中:
complete: function() {
wrapper();
$('#loading').hide();
$('#notes').show();
},
我知道你想做什么,但由于某种原因它不起作用。我所有的jquery代码都已经在文档就绪标记中了。但即使如此,我也无法让它正常工作。@OliverEvans在document.ready之外创建包装函数,然后在您的document.ready内调用该函数。ready和ajax回调应该可以工作。很抱歉,这似乎也不起作用。我已经做了一个例子,我是否正确地实现了您的代码|scripts.php:|index.php:| notes.php:很抱歉使用了粘贴箱。能否尝试在$('#notes').show()之后调用包装器?这可能是个很小的问题。对不起,这也不行。我刚刚将脚本标记复制到ajax添加的页面中。(notes.php),这在一定程度上是可行的。元素变得可以拖动,但是因为我技术上把所有东西都调用了两次,所以所有东西都会闪烁,而且不可接受。
function wrapper(){
$('.postit').draggable(
{
start: function(){
$(this).css("z-index", a++);
},
stop: function(){
var offset = $(this).offset();
var xPos = offset.left;
var yPos = offset.top;
var pid = $(this).attr('id');
var datastring = 'xpos=' + xPos + ' ypos=' + yPos + ' id=' + pid;
$.ajax({
type: "POST",
url: "savepositions.php",
datatype: "text",
data: {positions: datastring}
});
}
});
$('.postit').click(function(){
$(this).addClass('top').removeClass('bottom');
$(this).siblings().removeClass('top').addClass('bottom');
$(this).css("z-index", a++);
});
}
$(function(){
wrapper(); // This does the binding on page load
});
complete: function() {
wrapper();
$('#loading').hide();
$('#notes').show();
},