locked
Jquery drag end click RRS feed

  • Вопрос

  • Имеется div на странице у которого есть функционал jquery draggable.

    На этом диве есть событие jquery click:

    $("div").click(...);

    При завершении drag необходимо срабатывание click.

    Как это можно реализовать?

    30 сентября 2012 г. 11:51

Ответы

  • Вот полностью рабочий пример.

    <!DOCTYPE html>
    <html>
    <head>
        <title>Index</title>
        <script src="../../Scripts/jquery-1.8.2.min.js" type="text/javascript"></script>
        <script src="../../Scripts/jquery-ui-1.8.24.custom.min.js" type="text/javascript"></script>
    </head>
    <body>
        <div id="MyDiv" style="height: 100px; width: 100px; background-color: Blue;">
        </div>
        <script type="text/javascript">
          $(document).ready(function () {
            $("#MyDiv").click(function () { alert("Привет!"); });
            $("#MyDiv").draggable({
              stop: function (event, ui) {
                var myDiv = document.getElementById("MyDiv");
                if (typeof myDiv.onclick == "function") {
                  myDiv.onclick.apply(myDiv);
                }
              }
            });
            
          });
        </script>
    </body>
    </html>

    • Предложено в качестве ответа YatajgaModerator 30 сентября 2012 г. 16:05
    • Помечено в качестве ответа YatajgaModerator 30 сентября 2012 г. 18:01
    30 сентября 2012 г. 15:44
    Модератор

Все ответы

  • Т.е. Вы хотите вызвать событие программно. Тогда добавьте следующий код в обработчик события drag:

    var myDiv = document.getElementById("myDiv");
    if (typeof myDiv.onclick == "function") {
        myDiv.onclick.apply(myDiv);
    }

    30 сентября 2012 г. 12:24
    Модератор
  • А что такое 'elem'?
    30 сентября 2012 г. 13:27
  • Опечатался просто.
    30 сентября 2012 г. 13:35
    Модератор
  • Этот код убирает drag и не происходит click.
    30 сентября 2012 г. 13:44
  • Покажите вашу функцию?
    30 сентября 2012 г. 14:30
    Модератор

  • $("#drag1").draggable({
                        stop: function (event, ui) {
    
                            var myDiv = document.getElementById("drag1");
    
                             myDiv.onclick.apply(myDiv);
                            
                        }
    
                    });


    30 сентября 2012 г. 14:45
  • Вот полностью рабочий пример.

    <!DOCTYPE html>
    <html>
    <head>
        <title>Index</title>
        <script src="../../Scripts/jquery-1.8.2.min.js" type="text/javascript"></script>
        <script src="../../Scripts/jquery-ui-1.8.24.custom.min.js" type="text/javascript"></script>
    </head>
    <body>
        <div id="MyDiv" style="height: 100px; width: 100px; background-color: Blue;">
        </div>
        <script type="text/javascript">
          $(document).ready(function () {
            $("#MyDiv").click(function () { alert("Привет!"); });
            $("#MyDiv").draggable({
              stop: function (event, ui) {
                var myDiv = document.getElementById("MyDiv");
                if (typeof myDiv.onclick == "function") {
                  myDiv.onclick.apply(myDiv);
                }
              }
            });
            
          });
        </script>
    </body>
    </html>

    • Предложено в качестве ответа YatajgaModerator 30 сентября 2012 г. 16:05
    • Помечено в качестве ответа YatajgaModerator 30 сентября 2012 г. 18:01
    30 сентября 2012 г. 15:44
    Модератор
  • Большое Вам спасибо!

    Я поставил мой код в ' $(document).ready ' и click сам заработал после drag.




    • Изменено Andrey_ua 1 октября 2012 г. 6:03
    30 сентября 2012 г. 15:52