gpt4 book ai didi

php - 在通过 .load() 加载数据后使用 JQuery UI 的可排序 ('serialize' );

转载 作者:可可西里 更新时间:2023-10-31 22:59:37 24 4
gpt4 key购买 nike

我有一个页面 (page1.php),我在其中使用选择框将另一个页面 (page2.php) 加载到 DIV 中。在 page2.php 中有一个 UL 将数据从数据库(通过 PHP)加载到 LIs 并且是可排序的。

我的问题是,当我自己加载 page2.php 时,它可以很好地序列化。但是,当通过 .load() 将 page2.php 加载到 page1.php 时,它根本没有序列化,我得到了未定义。

这是重要的代码,它本身也能正常工作,但是当通过 .load() 函数加载此页面时就不行了

 <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script> 
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.2/jquery-ui.min.js"></script>
<style>
#thelist { list-style-type: none; margin: 0; padding: 0; width:700px; }
#thelist li { margin: 3px 3px 3px 0; padding: 1px; float: left; width: 200px; height: 150px; }
</style>
<ul id="thelist">
<li style="margin-bottom:5px;" name='listItem_1' id='listItem_1'>
test1
</li>
<li style="margin-bottom:5px;" name='listItem_2' id='listItem_2'>
test2
</li>
<script type="text/javascript">
$(function() {
$("#thelist").sortable({
update : function () {
var order = $('#thelist').sortable('serialize');
alert(order); // This alerts "undefined" when page2.php is loaded into page1.php via .load();
$("#info").load("reorder_slides.php?"+order);
}});
});
</script>

这是我正在运行的新代码,仍然无济于事。

<script>
$('#edit_service_date').change(function() {
// $(this).val()
$('#editService').slideUp("slow",function(){
$('#thelist').load('page2.php', {id: $('#edit_service_date').val()}, function(){
$("#thelist").sortable({
update : function () {
var order = $('#thelist').sortable('serialize');
alert(order); // This alerts "undefined" when page2.php is loaded into page1.php via .load();
$("#info").load("reorder_slides.php?"+order);
}});
if($('#edit_service_date').val()!="none"){
$('#editService').slideDown("slow");
}
});
});
});
</script>

最佳答案

如果您在上面发布的所有内容都通过 .load() 进入另一个页面,那么我看到(至少)两个问题:

  1. 您要加载 jQuery 和 jQuery UI 两次:一次在外部页面中,一次在通过 ajax 加载的内部页面中。没必要。
  2. 您期望 $(function(){}) 在加载到 div 中的“内部”页面后触发。 $(function(){})$(document).ready( function(){} ) 的同义词,实际上 ready code> 事件已经触发(当外部页面 DOM 准备就绪时)。它不会在这里做任何事情。

您应该尝试在 .load() 的回调中触发 .sortable() 内容,您正在使用它来将内部文档带入 分区:

/* on page1.php */
$('#yourdiv').load( 'page2.php', function(){
$('#thelist').sortable( /* arguments */ );
});

关于php - 在通过 .load() 加载数据后使用 JQuery UI 的可排序 ('serialize' );,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3443793/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com