Я пишу плагин jquery для отображения диалогового окна jquery ui, когда по ссылкам щелкают, чтобы предоставить диалоговое окно подтверждения перед переходом по ссылке.
Проблема, с которой я сталкиваюсь, заключается в том, что при закрытии диалога с помощьюПри нажатии кнопки «Да» плагин использует $(element).trigger( 'click' );
для запуска события click для исходного элемента привязки.
Это не заставляет браузер переходить по ссылке, однако второй щелчок мышью после закрытия диалогового окна работает .
Плагин используется следующим образом $('a').submitConfirm();
Вот плагин
;(function ( $, window, document, undefined )
{
var pluginName = "submitConfirm";
var Plugin = function( element )
{
var confirmed = false;
var dialog = $( '<div style="display:none;">' )
.html( 'Visit this link?' )
.dialog(
{
modal: true,
title: 'Visit Link?',
autoOpen: false,
buttons :
[
{
text: 'Yes',
click: function( event )
{
confirmed = true;
dialog.dialog( "close" );
$(element).trigger( 'click' );
}
},
{
text: 'No',
click: function( event )
{
confirmed = false;
dialog.dialog( "close" );
}
}
]
});
$(element).bind( 'click',
function( event )
{
if ( ! confirmed )
{
dialog.dialog( "open" );
event.preventDefault();
}
});
};
// Init the plugin
$.fn[pluginName] = function( options )
{
return this.each(function ()
{
// Prevent re-instantiation
if ( !$.data(this, 'plugin_' + pluginName) )
{
$.data(this, 'plugin_' + pluginName,
new Plugin( this, options ));
}
});
};
})( jQuery );