Я думаю, что вашей непосредственной проблемой является то, что у вас нет # перед unloadPic в верхнем селекторе, когда вы создаете диалог.Он не знает, что вы пытаетесь выбрать, поэтому никогда не создает диалоговое окно.
Кроме того, если вы используете jQuery, почему бы не присоединить обработчик щелчков для вашего dialog()
с помощью jQuery?
<map name="Map">
<area id="myAlerts"
shape="rect"
coords="225,16,287,33"
href="/_layouts/MyAlerts.aspx"
alt="My Alerts" />
</map>
Обратите внимание, что к вашему тегу area
необходимо добавить id
, а также добавить /
перед >
, чтобы правильно закрыть тег, которого у вас нет.
Это то, что я использую, и я изменил его для вашего примера:
(function($, window, document, undefined) {
// grab dialog and area
var $dialog = $("#uploadPic"),
$myAlerts = $("#myAlerts");
// attach click handler
$myAlerts.click(function(e) {
// prevent default click action
e.preventDefault();
// if dialog exists, unbind and open
if ($dialog.length) $dialog.unbind().dialog('open');
});
// added to re-center dialog when window re-sizes
$(window).resize(function() {
if ($dialog.length && $dialog.dialog('isOpen'))
$dialog.dialog('option', 'position', 'center');
});
})(jQuery, this, document);
РЕДАКТИРОВАТЬ:
Я также добавил бы, что свы используете MasterPages, я определенно должен убедиться, что вы добавляете onLoadFunction()
через:
if (Sys != undefined && Sys.Application) {
// add to Application object
Sys.Application.add_load(onLoadFunction);
} else {
// fall back to adding to window.onload
window.onload = onLoadFunction();
}
Я вижу _spBodyOnLoadFunctionNames.push("onloadFunction");
, но я не уверен, что именно это делает.Я бы предположил, что он делает то, что должен.