Я хочу иметь список, который является поддающимся сортировке, но я также хочу, чтобы элементы в том списке были сбрасываемыми отделениям, которые я определил как сбрасываемые. Я, может казаться, не нахожу способ сделать это. Какие-либо идеи?
<?php
function get_all_substrings($input){
$subs = array();
$length = strlen($input);
for($i=0; $i<$length; $i++){
for($j=$i; $j<$length; $j++){
$subs[] = substr($input, $i, $j);
}
}
return $subs;
}
$subs = get_all_substrings("Hello world!");
print_r($subs);
?>
Даже если для достижения этой цели есть необычный двухлайнер, я сомневаюсь, что он более эффективен или прост для понимания (чтобы кто-либо понял его, ему, вероятно, придется посмотреть документы. Большинство людей, вероятно, получают то, что substr делает, даже не глядя на это вверх).
-121--4577946-Вы пытались поместить общие файлы в $ CATALINA _ HOME/lib ? Там так написано. " Как правило, классы приложений НЕ должны размещаться здесь ", но звучит так, как вы бы хотели в вашем случае.
$ CATALINA _ HOME/shared/lib, похоже, отсутствует в 6.0 (это было в 5.5).
-121--1906230-Насколько я мог судить, проблема с предыдущим кодом, который я разместил, заключается в том, что функция drop от droppable вызывалась до мышления сортируемого, и поскольку я переписал список, сортируемый разозлился (из-за отсутствия лучших терминов). Это несколько предположение.
Глядя на окончательный код:
<html>
<head>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.js"></script>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.2/jquery-ui.js"></script>
<script type="text/javascript">
var dropped = false;
var templateHtml;
$(document).ready(function(){
setSortable();
$("#droppable").droppable({
activeClass: 'active',
hoverClass:'hovered',
accept:".drop",
drop:function(event,ui){
dropped = true;
//alert(ui.draggable.text());
}
});
});
function setSortable(){
$("#sortable").sortable({
stop:function(event,ui){
if(dropped){
$("#sortable").sortable('destroy').html(templateHtml);
dropped = false;
setSortable();
}
}
});
$("#sortable li").addClass("drop").bind('mousedown',function(){
templateHtml = $("#sortable").html();
});
}
</script>
<style type="text/css">
#sortable li{
clear:both;
float:left;
}
#droppable {
clear:both;
height:300px;
width:400px;
background-color:#CCC;
}
#droppable.active {
background-color:#CFC;
}
#droppable.hovered {
background-color:#CCF;
}
</style>
</head>
<body>
<ul id="sortable">
<li id="one">One</li>
<li id="two">Two</li>
<li id="three">Three</li>
<li id="four">Four</li>
<li id="five">Five</li>
<li id="six">Six</li>
</ul>
<div id="droppable">
Drop Here
</div>
</body>
Здесь задействованы тонны причуд.
Я попытался сохранить # sortable html на начальном событии sortable, но это получение вызывается после того, как все ui-css будет применен, и в конечном итоге размещение элементов списка в сумасшедших местах. Мне нужно было использовать функцию mousedown на LI.
setSortable находится в функции, так как событие stop перезаписывает сортировку, которая является «рекурсивной». Не уверен, что точная терминология здесь, но мы можем пойти с досадно запутанным.
К счастью, функция drop для droppable вызывается перед функцией остановки sortables, поэтому я смог установить глобальную переменную droped, которая использовалась для просмотра, был ли элемент удален.
Я все еще удивлен, что это было не легче сделать, я думал, что jQuery будет иметь функции, чтобы справиться с этим намного лучше. Возможно, мне чего-то не хватает?
Я потратил весь день на этом, и я настал намного ближе, но все же не делать, как я бы хотел. Теперь у меня есть нужна функциональность, но ошибка JavaScript получила бросок.
Проблема получает сортируемый список, чтобы вернуться к своей предыдущей позиции, если элемент удаляется в DropPable, а не в списке. В настоящее время я сохраняю HTML OnMousedown, затем перезаписывая HTML в функцию Drop от DropPable. Это работает, но это дает мне переменную jQuery - это нулевая ошибка. Кто-нибудь может найти лучшее решение?
код:
<html>
<head>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.js"></script>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.2/jquery-ui.js"></script>
<script type="text/javascript">
var templateHtml;
$(document).ready(function(){
$("#sortable").sortable();
$("#sortable li").addClass("drop").bind('mousedown',function(){
templateHtml = $("#sortable").html();
});
$("#droppable").droppable({
activeClass: 'active',
hoverClass:'hovered',
accept:".drop",
drop:function(event,ui){
$("#sortable").sortable('destroy').html(templateHtml);
$("#sortable").sortable();
$("#sortable li").addClass("drop").bind('mousedown',function(){
templateHtml = $("#sortable").html();
});
}
});
});
</script>
<style type="text/css">
#sortable li{
clear:both;
float:left;
}
#droppable {
clear:both;
height:300px;
width:400px;
background-color:#CCC;
}
#droppable.active {
background-color:#CFC;
}
#droppable.hovered {
background-color:#CCF;
}
</style>
</head>
<body>
<ul id="sortable">
<li id="one">One</li>
<li id="two">Two</li>
<li id="three">Three</li>
<li id="four">Four</li>
<li id="five">Five</li>
<li id="six">Six</li>
</ul>
<div id="droppable">
Drop Here
</div>
</body>