事件的不需要的传播在spring应用程序中使用jquery单击

在我的spring项目中,我有一个仪表板页面,我可以在其中打开我的应用程序中的每个子页面,所有子页面都在jquery-ui对话框中打开,就像MDI类似Windows的应用程序。 我现在的问题是,在第一次点击任何链接(正常运行)之后,重复执行其他点击,导致显示多个窗口(但只有一个完全显示,所有其他只显示标题栏) )。 处理事件并打开jquery-ui对话框的代码是:

$( '.dialog' ).dialog({ autoOpen: false, closeOnEscape: true, closeText: "fechar", height: 680, width: 1046, show: { effect: "fadeIn", duration: 1000 }, hide: { effect: "fadeOut", duration: 1000 }, close: function(){ console.log('remove dialog_div'); $(this).remove(); } }); function add_dialog(dialog_name) { console.log('=== add_dialog ==='); console.log('dialog_name = '+dialog_name); $('#container').append('
'); var div = $('#'+dialog_name); return div; } function open_dialog(url, dialog_box) { console.log('=== open_dialog ==='); $.ajax({ type: "GET", url: url }).done(function(data){ var $temp = $('
', {html:data}); $(dialog_box).find('.text').empty(); var content = $temp.find('head').html(); console.log('content_head_section = '+content); $(dialog_box).find('.text').html( $temp.remove('head').html() ); console.log('dialog_title = '+$temp.find('title').text()); $(dialog_box).dialog('option', 'title', $temp.find('title').text()); $(dialog_box).dialog( "open" ); }); } $(document).on('click', '.popup', function (event) { console.log('=== click_event_popup ==='); event.preventDefault(); event.stopPropagation(); var action = $(this).data('action'); var target = $(this).data('target'); var div = add_dialog(target); open_dialog(action, div); });

浏览器控制台中的输出(我在firefox和chrome中测试)是这样的:

第一次点击

 === click_event_popup === page_link.js:81 === add_dialog === page_link.js:56 dialog_name = popup-usuario page_link.js:57 === open_dialog === page_link.js:64 content_head_section = undefined page_link.js:72 dialog_title = Usuario 

第二次点击

 === click_event_popup === page_link.js:81 === add_dialog === dialog_name = popup-permissao === open_dialog === === click_event_popup === === add_dialog === dialog_name = popup-permissao === open_dialog === content_head_section = undefined dialog_title = Permissao content_head_section = undefined dialog_title = Permissao 

连续点击继续提高对click事件处理程序的调用次数。

谁都能看到这里出了什么问题?

ps。:从这个jsp页面调用此代码:

   

UPDATE

似乎这个问题在某种程度上与如何在spring应用程序中处理jsp有关,因为这里: http : //jsfiddle.net/ryVAb/代码工作正常。 该应用程序的源代码可以在这里找到: https : //github.com/klebermo/blog.cms 。 我无法弄清楚为什么代码在spring应用程序中执行时不运行的动机。

更新2

三次单击后控制台的输出(注意删除的数量 – 在这种情况下意味着关闭):

 === click_event_popup === page_link.js:77 === open_dialog === page_link.js:63 remove dialog_div === click_event_popup === page_link.js:77 === open_dialog === === click_event_popup === === open_dialog === 2 remove dialog_div === click_event_popup === page_link.js:77 === open_dialog === === click_event_popup === === open_dialog === === click_event_popup === === open_dialog === === click_event_popup === === open_dialog === 4 remove dialog_div === click_event_popup === page_link.js:77 === open_dialog === === click_event_popup === === open_dialog === === click_event_popup === === open_dialog === === click_event_popup === === open_dialog === === click_event_popup === === open_dialog === === click_event_popup === === open_dialog === === click_event_popup === === open_dialog === === click_event_popup === === open_dialog === 8 remove dialog_div