перетащите н капля JavaScript-запрос - PullRequest
0 голосов
/ 17 апреля 2011
<script type="text/javascript">
    //mouse down on dragged DIV element
    var flag = 0;

    function startdrag(t, e) {
    if (e.preventDefault) e.preventDefault(); //line for IE compatibility  
        e.cancelBubble = true;
        t.style.position = "absolute";
        window.document.onmousemove = dodrag;
        document.getElementById("resulttable").onmouseup = end;
        window.document.onmouseup = stopdrag;
        window.document.s = t;
        return false;
    }
    //move the DIV  
    function dodrag(e) {
        //alert("dodrag");
        if (!e) e = event; //line for IE compatibility

        t = window.document.s;
        if (t != null) {
            t.style.left = (t.offsetLeft + e.clientX - t.dragX) + "px";
            posleft = (t.offsetLeft + e.clientX - t.dragX) + "px";
            t.style.top = (t.offsetTop + e.clientY - t.dragY) + "px";
            t.dragX = e.clientX;
            t.dragY = e.clientY;
        }
        return false;
    }
    //restore event-handlers
    function stopdrag(e) {
        if (flag == 1)
            window.document.s = null;
        else
            alert("outside valid range"); // code for setting object to original area
        return false;
    }
    function end(e) {
        flag = 1;
        return false;      
    }
</script>

//  table  from where we start dragging
<td id="<%= i %>"><div onmousedown="startdrag(this, event);"> <%Response.Write(row1[i].ToString());  %></div> </td>


// target div where to put element
<div id="resulttable" onmouseup="end(event);" >Put whatever you want in here<br />
      <br />
      <br />
      <br />
    </div>

ПРОБЛЕМА:

  1. Когда я начинаю перетаскивать, вызываются все операторы startdrag(), затем dodrag() и т. Д.
  2. end() неназывается событие, хотя мы помещаем элемент на целевой div.поэтому флаг остается как 0.

1 Ответ

0 голосов
/ 17 апреля 2011

Согласно моему комментарию, если вы можете использовать Jquery UI и Jquery, так как это сделает всю тяжелую работу.

Что касается вашего вопроса, попробуйте end () stopdrag (), javascript может работать по-разному в разных браузерах, проверьте в другом браузере, чтобы увидеть, работает ли вызов на самом деле ... console.debug ("метод вызван"); хорошая команда для добавления в ваш код, чтобы помочь с отладкой ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...