Как получить обратный звонок, работая с SimpleModal - PullRequest
1 голос
/ 18 ноября 2009

Мне не удалось поймать онкрозу из простого режима. Пожалуйста, дайте мне руку, если можете, так как я новичок в jQuery ...

<a href="http://url/" onclick="$(this).modal({width:833, height:453}).open(); return false;">

работает, но я хотел бы вызывать функцию javascript всякий раз, когда модальный диалог закрыт. Как мне прикрепить, скажем updateTable (); на закрытие мероприятия ??

Я пробовал

<a href="" onclick="$(this).modal({onClose: alert(1);$.modal.close();}).open();"

и все эти глупые варианты, но, честно говоря, взгляд на вложенные функции на странице примера привел меня в замешательство (во втором примере также есть href, но он не позволяет мне публиковать его здесь) ....

Ответы [ 2 ]

3 голосов
/ 18 ноября 2009

Если я вас правильно понимаю, вы хотите

  • Нажмите на ссылку (например, с идентификатором clicker)
  • Страница, определенная URL-адресом в href этого тега <a href="...">, должна содержать модальное содержимое
  • Когда пользователь закрывает модальный режим, вы хотите запустить какое-то действие и закрывать модальный

HTML:

<a href="http://www.google.com" id="clicker">Click me!</a>

JavaScript

var c = function closer() {
    $.modal.close();
    alert("Done!"); 
}
$(document).ready(function() {
    $("#clicker").click(function() {
        $.modal(
            '<iframe src="'+this.href+'" width="833" height="453">asd</iframe>',
            {onClose:c}
        );
        return false;
    });
});

Проверка http://jsbin.com/ofimi для рабочего образца

0 голосов
/ 18 ноября 2009

Во-первых, вам не нужно добавлять атрибут onclick при использовании jQuery. Предположим

 <a id="clicker" href="http://url/" >Click</a>

Тогда

  $(document).ready(function(){
      $("#clicker").click(function(){
          $(this).modal({width:833, height:453, onClose: function(){ 
             //your code here}})
          .open(); 
          return false;
      });

 });

Ссылка $ (this) на самом деле относится к тегу, может быть, вы захотите использовать div с именем dialog, например так:

 <div id="dialog"></div>

и измените jQuery на

$("#dialog").modal(...)

ОБНОВЛЕНИЕ: На основании вашего комментария. попробуйте это.

   <head>
      <!-- Include your script tags here to load the jQuery and simplemodal scripts -->
      <script type="text/javascript">
          $(document).ready(function(){
              $("#clicker").click(function(){
                 $("#dialog").modal({onClose: function(){ 
                  alert("Closing");
                 }
                 });
                return false;
              });
          });


      </script>

      </head>
      <body>
           <div id="dialog"></div>
           <a href="#" id="clicker">Click</a>
      </body>
...