2014-09-29 52 views
0

我有一个jquery dialog这是打开每页加载。 jquery dialog包含一个关闭按钮。打开和关闭代码behiend在c#中的jquery对话框#

$(document).ready(function() {  
     $("#dialog").dialog({ 
      title: "Create your free showcase profile", 
      autoOpen: true, 
      hide: 'fold', 
      show: 'blind', 
      width: 'auto', 
      modal: true, 
      buttons: { 
       Close: function() { 
        $(this).dialog('close'); 
       } 
      } 
     }); 
     setInterval(function() { 
      $('#dialog').dialog('open'); 
     }, 10000); 
    }); 

现在我所要做的是,在该对话框中单击Close按钮让用户关闭,它不会给用户,直到会议结束时再次可见。

请有助于实现这一目标

+0

请在这种情况下尝试脚本管理器。 – 2014-09-29 06:49:49

+2

您可以使用会话ID在cookie中或localStorage中保存一个标志。每当你的页面加载时,只要检查你是否已经为当前会话设置了一个标志。如果是,请不要显示对话框。 – 2014-09-29 06:51:44

+0

@AndreiV我很欣赏你的答案,但如何实现这一点,我如何创建关闭按钮点击事件? – Gitz 2014-09-29 06:54:03

回答

1

您可以设置localStorage并在其存储令牌值,然后检查localstorage如图所示:

$(document).ready(function() {  
var $dialog = $("div").dialog({ 
     title: "Create your free showcase profile", 
     autoOpen: false, 
     hide: 'fold', 
     show: 'blind', 
     width: 'auto', 
     modal: true, 
     buttons: { 
      Close: function() { 
       localStorage.setItem('token','closed'); 
       $(this).dialog('close'); 
      } 
     } 
    }).dialog('open'); //trigger on page load 


    var init = setInterval(function() { 
     if(localStorage.getItem('token') == 'closed') 
     { 
      clearInterval(init); 
      return; 
     } 
     $dialog.dialog('open'); 
     }, 10000); 
}); 

或使用sessionStorage如图所示:

$(document).ready(function() {  
var $dialog = $("div").dialog({ 
     title: "Create your free showcase profile", 
     autoOpen: false, 
     hide: 'fold', 
     show: 'blind', 
     width: 'auto', 
     modal: true, 
     buttons: { 
      Close: function() { 
       sessionStorage.setItem('token','closed'); 
       $(this).dialog('close'); 
      } 
     } 
    }).dialog('open'); //trigger on page load 


    var init = setInterval(function() { 
     if(sessionStorage.getItem('token') == 'closed') 
     { 
      clearInterval(init); 
      return; 
     } 
     $dialog.dialog('open'); 
     }, 10000); 
}); 

Working Demo

+0

@GarimaRawat ...试试这个.. – 2014-09-29 06:56:35

+0

这是不完整的。考虑如果用户关闭浏览器,再次打开并再次访问网站会发生什么情况。 'token'已经存在了......你应该删除它(在tab/window close上)或者保存session id而不是'open'。 – 2014-09-29 07:01:19

+0

@Kartikeya在哪里放置'localStorage'代码? – Gitz 2014-09-29 07:01:27