然後一個超級鏈接應該打開的對話框:
<a href="javascript:$('#foo').dialog('open');">Show dialogue box</a>
但這打開的對話框中,然後一小部分後重定向到的URL JavaScript的網頁:$( '#foo')。對話框( '開放');!
這應該不會發生。僞協議javascript:
不涉及頁面加載,當然也不通過HTTP。我不推薦它(我會使用jQuery的click
處理程序),但它應該可以工作。
我試圖返回false: ... 但是當我點擊它的鏈接根本不會迴應。
那也不應該發生。
您引用的代碼很好(在這裏有效,例如:http://jsbin.com/inixa5),所以問題必須出現在頁面的其他部分。
更新:好吧,這很奇怪,IE6和IE7不喜歡那樣;我認爲這是因爲dialog
返回一個值。你可以避開,要麼通過包裝您的通話的功能,打開對話框並沒有明確返回任何東西:
<a href="javascript:showDialog('#foo');">Click Me</a>
<script>
$("#foo").dialog({autoOpen: false});
function showDialog(selector) {
$(selector).dialog('open');
}
</script>
或(這是大型哈克)通過確保在最後一個表達式javascript:
塊undefined
:使用
<a href="javascript:$('#foo').dialog('open');undefined;">Click Me</a>
<script>
$("#foo").dialog({autoOpen: false});
</script>
或者通過onclick
:
<a href="#" onclick="$('#foo').dialog('open'); return false;">Click Me</a>
<script>
$("#foo").dialog({autoOpen: false});
</script>
但在任何情況下,強烈建議掛鉤次與DOM2風格的事件處理程序INGS起來:
<a href="#" name='openSesame'>Click Me</a>
<script>
// This _can_ be immediately after the anchor, but I'd put it in
// a separate, since .js file for the page that you load just before
// the closing body tag.
$("#foo").dialog({autoOpen: false});
$("a[name=openSesame]").click(function() {
$("#foo").dialog('open');
return false;
});
</script>
Live example(當然,你可以使用任何有意義的選擇,你不必給錨name
[或id
]。)
其中一件好事就是,如果JavaScript被禁用(有些稱爲progressive enhancement),那麼您可以讓用戶把用戶帶到有意義和/或有用的地方。
你可以提供一個鏈接到你使用的插件,因爲我想有很多。 – 2011-04-28 09:32:42
@Robert:99.9%它是jQuery UI的對話框:http://jqueryui.com – 2011-04-28 09:33:52