2009-11-17 2 views
1

Мне не удалось поймать onclose из простой модели. пожалуйста, дайте мне руку, если вы можете, как я новичок в JQuery ...Как получить обратный вызов, работающий с SimpleModal

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

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

Я попытался

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

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

ответ

3

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

  • Нажмите на ссылку (например, с идентификатором кликер)
  • Страницу определяемом 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

Отлично! Наконец, понял! благодаря! – Roy

0

Сначала вам не нужно добавлять атрибут 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; 
     }); 

}); 

в $ (это) ссылка на самом деле относится к тегу, может быть, вы можете использовать DIV называется диалоговое окно, как это:

<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> 
+0

Спасибо за помощь ... не используя OnClick, безусловно, сделать код аккуратнее, но, к сожалению, она не работает мой код, когда я закрываю модальный ... я попробовал просто alert ('hello'); и он не работает ... – Roy

+0

Извините мое невежество, но зачем мне нужен div? Я загружаю контент, который является внешним, внутри модального, он получает все, что находится на href кликера, и загружает его как iframe. Все, что мне нужно сделать, это знать, когда пользователь закрывает диалоговое окно, чтобы я мог обновлять материал на странице. – Roy

+0

$ (this) в вашем исходном коде относится к тегу, который является ссылкой.Как будто вы делаете ссылку в модальном диалоге, и я сомневаюсь, что вы хотите. Вы хотите использовать другой контейнер, такой как div для этого. В противном случае вы можете использовать любой другой контейнер, который вам нравится. –

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