2013-05-21 71 views
1

我很难创建一个按钮,如果我想继续打开URL链接,它将弹出一个对话框'确认'。然而,当我点击按钮“谷歌”,它会自动将我引导到谷歌网站,甚至在我点击“OK”进行查看之前,我不知道我在做什么错误。jQuery对话框按钮在打开URL之前确认

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>

<button>删除onclick事件。

此外,您只是创建jQueryUI对话框。你需要真正需要打开它。我建议看看这个小部件的jQueryUI文档。

+0

谢谢。我删除了onClick并更改了window.location = link.href;到window.open(“http://www.google.com”);它工作正常;但是,通过指定“google.com”,我无法为新网址创建按钮。任何方式在这个? – user1652920

0

问题是你在调用window.open函数内联。

把它放在一个叫做doGoogle或者其他东西的函数中。然后将doGoogle函数放在ok函数调用中。只要存在DIV像你这样有

贾德森

+0

谢谢。我删除了onClick并更改了window.location = link.href;到window.open(“http://www.google.com”);它工作正常;但是,通过指定“google.com”,我无法为新网址创建按钮。任何方式在这个? – user1652920

+0

是的,你需要传递变量到window.open,所以当你调用你的对话框函数设置一个变量,如URL =“google.com”,然后在按钮中引用它作为window.open(URL) –

0

我用另一种方法是换我.dialog在这样的ShowDialog(URL)的函数

.dialog将inialize对话开幕

这种方式可以将URL传递到按钮

所以,你会调用它:的onclick = “的ShowDialog(” google.com“)

那么你的按钮将有

window.location.href =网址

希望这有助于。