2013-05-21 2 views
1

У меня возникли трудности с созданием кнопки, которая откроет диалоговое окно для подтверждения, если я хочу продолжать открывать ссылку URL или нет. Однако, когда я нажимаю кнопку «google», она автоматически перенаправляет меня на сайт google, прежде чем я даже щелкнула «ok», чтобы просмотреть. Я не знаю, что я делаю неправильно.Диалоговое окно jQuery подтвердить перед открытием URL

Вы можете посмотреть jsfiddle здесь: http://jsfiddle.net/uRGJD/76/

HTML:

<button class="open" onclick="window.open('http://google.com')">Google</button> 

<div class="unique">Are you sure you want to continue?</div> 

JS:

$(function() { 
    $('.open').on("click", function(e) { 
     var link = this; 

     e.preventDefault(); 

     $('.unique').dialog({ 
      buttons: { 
       "Ok": function() { 
        window.location = link.href; 
       }, 
       "Cancel": function() { 
        $(this).dialog("close"); 
       } 
      } 
     }); 
    }); 
}); 

CSS:

.unique {display: none;} 

Благодарим вас за продвинутый!

ответ

0

<button class="open">Google</button>

Удалить событие OnClick из вашего <button>.

Кроме того, вы просто создаете диалог jQueryUI. Вам действительно нужно открыть его. Я предлагаю посмотреть документацию jQueryUI для этого виджета.

+0

Спасибо. Я удалил onClick и изменил window.location = link.href; to window.open ("http://www.google.com"); и он отлично работает; однако, указав «google.com», я не смогу создавать кнопки для новых URL-адресов. Как это обойти? – user1652920

0

Проблема в том, что вы вызываете функцию window.open inline.

Выньте его в функцию под названием doGoogle или что-то в этом роде. Затем поместите функцию doGoogle в вызов функции ok.

.dialog будет inialize открытие диалогового окна до тех пор, пока существует ДИВ, как у вас есть

Джадсон

+0

Спасибо. Я удалил onClick и изменил window.location = link.href; to window.open ("http://www.google.com"); и он отлично работает; однако, указав «google.com», я не смогу создавать кнопки для новых URL-адресов. Как это обойти? – user1652920

+0

Да, вам нужно передать переменные в window.open, поэтому, когда вы вызываете свою функцию диалога, задайте переменную типа URL = «google.com», а затем в кнопке укажите ее как window.open (URL) –

0

Другой подход, который я использую, чтобы обернуть мой .dialog в функции как ShowDialog (URL)

Таким образом, вы можете передать URL к кнопкам

Таким образом, вы могли бы назвать это нравится: OnClick = "ShowDialog (" google.com ")

Тогда ваша кнопка будет иметь

window.location.href = URL

Надеется, что это помогает.

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