2010-10-18 4 views
0

В моем коде есть div, которые появляются на экране в зависимости от разных действий. У divs есть ручки, которые заставляют их перетаскивать через код jquery ui.draggable. У меня есть опция draggable ui stack, поэтому, когда вы перетаскиваете элемент, он автоматически перемещается в начало всех других перетаскиваемых элементов.Как вызвать событие jquery drag

Проблема, с которой я столкнулась, заключается в том, что я хочу, чтобы div перемещался на передний план, даже если вы просто нажимаете на ручку, не перетаскивая ее в любом месте. Я пробовал запускать различные события при щелчке по ручке, такие как mousedown, mousemove, mouseup, drag, dragstart и dragstop, но никто, кажется, не делает этого. Я также попытался просто изменить значения z-index, но пока это не сработало.

Мой код выглядит примерно так. Скажем, у меня есть div, а дескриптор - тег h5. Я уже создал функцию перетаскивания. Поэтому у меня есть:

$("div.window h5").click(function() { 
    $(this).parents("div:first").trigger("whatever event i am trying"); 
)}; 

Но это не работает. (Я также попытался поставить триггер на сам h5 вместо родительского div). Я не вижу ошибок, я просто не получаю желаемого результата.

Заранее благодарим за любую помощь!

ответ

2

Попробуйте это:

$("div.window h5").click(function(e){ 

    // Variable to hold the highest z-index 
    var largestZ = 1; 

    // I have used div.window h5 but this should cycle through each draggable element 
    $("div.window h5").each(function(i) { 
     // Get the the z-index and update if it is larger than current largest value 
     var currentZ = parseFloat($(this).css("zIndex")); 
     largestZ = currentZ > largestZ ? currentZ : largestZ; 
    }); 

    $(this).css("z-index", largestZ + 1); 
}); 

Некоторые из селекторов, возможно, придется изменить, потому что я не могу видеть ваш полный код. Я нашел этот фрагмент и изменил его с here.

+0

Это было! Огромное спасибо! – Gary

Смежные вопросы