Я использую Jquery-интерфейс.У меня есть разные буксируемые ul на одной странице и разные перетаскиваемые li.Я хотел, чтобы: 1. ul отличались друг от друга по названию, например, «FUNCTION», «BUG» и т. Д. 2. li отличаются друг от друга по классу, например «.FUNCTOIN», «.BUG»,и т. д. 3. ul с заголовком «FUNCTION» может принимать только li с классом «.FUNCTION» и т. д. 4. заголовки ul (s) могут быть известны только во время их создания в представлении, согласно некоторымзначения хранятся в БД.
, но затем я столкнулся с некоторыми проблемами, вот различные варианты насыщенности:
, если я использую постоянное значение, оно работает хорошо, например:
$("ul.droppable").droppable({
accept: ".FUNCTION",
, в то время как все следующиепути провалились:
$("ul.droppable").droppable({
accept: "." + $(this).attr("title"),
$("ul.droppable").droppable({
accept: '.' + $(this).attr("title"),
$("ul.droppable").droppable({
accept: "\." + $(this).attr("title"),
$("ul.droppable").droppable({
accept: '\.' + $(this).attr("title"),
поэтому я поставил "."в названии и попробовал следующее, но все они потерпели неудачу:
$("ul.droppable").droppable({
accept: $(this).attr("title"),
кстати, когда я имею в виду «не удалось», нет ошибки, всплывающее окно и т. д. Сбрасываемый просто не работал (неактивный, не зависший, не может быть отброшен.).
Я нашел множество демонстраций или Q / A этого "accept", но все они используют что-то, что может быть определено до выполнения.Таким образом, «принять» может использовать только постоянное значение, или способ, которым я его использую, был неверным?Спасибо за ответ или рекомендации или комментарии, которые могут помочь.
Согласно ответу от Xnake, способ сделать это заключался в следующем:
перед старым кодом droppable, добавьтепервые 3 строки:
$("ul.droppable.accept").droppable({
accept: function (e) { if (e.hasClass($(this).attr('accept'))) return true; }
});
$("ul.droppable").droppable({
activeClass: "ui-state-default",
... //this is the old code.
Это означает, что если мы дадим «accept» класс для сбрасываемого ul, он будет принимать только объект с некоторым классом;в противном случае он может принять любой перетаскиваемый объект.
Тогда в представлении:
<ul class = "stories-of-category droppable accept" accept = "@map.Type" >
...
</ul>
если любой объект с классом с тем же именем с @ map.Type, он может быть здесь удаленНапример:
<ul title = ".."> //this is another ul.
<li class = "@map.Type">
@map.Title
</li>
...
</ul>