Tutorial :jQuery cookie not clearing upon UI close



Question:

As you can see, I'm using cookies to pop up modal confirmation boxes and alerts. While these have worked for a long time until very recently, I must have added something to this chunk of code and it all went haywire. The "close" function on the modal is supposed to clear the cookies so the pop up won't pop up anymore, now it is not clearing the cookies unless there is a CKEditor on the page, which puzzles me since the call for editor is AFTER the modals...

I forgot in what order I added each element - stupid, I know - and am having a hard time what could've caused the problem. I also recently wrote a bunch of mod_rewrite rules, though I'm not sure if that would change anything.

PLEASE HELP! I need this project done this week...

Here's my entire jQuery chunk:

<script type="text/javascript">    $(document).ready(function(){      $("body").prepend('<div id="topbar" class=""><\/div><div id="subnavbar" class="subnavbar-<?php echo $nav_id; ?>"><\/div>');      $("#group-left a").prepend('- ');      $("input").hint();        $("#mypassword").focus(function(){          this.type='password';          $(this).val('');          });      $("#mypassword").blur(function(){          if($(this).val() == "Password") {              this.type='text';          }          });      $("label.required").append('<span style="color: #F00; float: none;">*<\/span>');      $("#coupon_start").datepicker({dateFormat: 'yy-mm-dd'});      $("#coupon_end").datepicker({dateFormat: 'yy-mm-dd'});        $("div.blog-entry img").each(function() {          var blogImgFloat = $(this).css("float");          if(blogImgFloat == "left") {              $(this).css("margin-right", "15px");          } else if(blogImgFloat == "right") {              $(this).css("margin-left", "15px");                   }         });        $.fn.tipper = function() {          if($(this).attr('alt')) {              if($(this).hasClass('height')) {                  $(this).qtip({                         content: $(this).attr('alt'),                         position: {                             corner: {                                 target: 'topMiddle',                                 tooltip: 'bottomMiddle'                             }                         },                         style: {                             name: 'cream', // Inherit from preset style                            padding: 10,                            tip: 'bottomMiddle',                            border: {                               width: 5,                               radius: 5                            }                         },                         show: 'focus',                         hide: 'blur'                      });               }                else {                                                $(this).qtip({                         content: $(this).attr('alt'),                         position: {                             corner: {                                 target: 'rightMiddle',                                 tooltip: 'leftMiddle'                             }                         },                         style: {                             name: 'cream', // Inherit from preset style                            padding: 10,                            tip: 'leftMiddle',                            border: {                               width: 5,                               radius: 5                            }                         },                         show: 'focus',                         hide: 'blur'                      });               }          } else { return false; }      };        $("#content input").each( function(){ $(this).tipper(); } );      $("#content textarea").each( function(){ $(this).tipper(); } );        // calendar      $("#ajax-datepicker").datepicker({          onSelect: function(date,instance){               $(".eventdateheader").html(date);              $.ajax              ({                  type: "GET",                  url: "/grab_events.php",                  data: "date=" + $.datepicker.formatDate("yy-mm-dd", $(this).datepicker('getDate')),                  success: function(result)                  {                     $("#eventslist").html(result);                  }             });          },          minDate: '-2W',          dateFormat: 'M d, yy'      });        $("#event-datepicker").datepicker({          onSelect: function(date,instance){               window.location = "/events.php?date=" + $.datepicker.formatDate("yy-mm-dd", $(this).datepicker('getDate'));          },          minDate: '-2W',          gotoCurrent: true,          dateFormat: 'M d, yy'      });        $("#event-datepicker").datepicker('setDate', '<?php echo $selected_date; ?>');        $(".date").datepicker({          dateFormat: 'yy-mm-dd',          showOn: 'button',          buttonImage: '/images/calendar.gif',          buttonImageOnly: true      });        // regular dialog box      $("#dialog").dialog({autoOpen: false, modal: true});      $("#dialog_link").click(function(){          $("#dialog").dialog("open");          return false; });        // user context menu      $("a.user").contextMenu(          { menu: 'HKPopUpMenu' },           function(action, el, pos) {              var username = $(el).attr('id');              if(action == "viewprofile") { window.location = "/profile.php?req="+username; }              else if(action == "viewblog") { window.location = "/profile_blog.php?req="+username; }              else if(action == "sendmsg") {                  $("#sendmsg_to").val(username);                  $("#sendmsg_div").dialog("open");                   return false;               }              else if(action == "sendwink") {                  $.cookie("modal_confirm", "<?php echo $alert_13_send_wink_frag; ?>"+username+"?");                  $.cookie("confirmGo", "/sendwink_process.php?req="+username+"&nexturl=<?php echo curPageURL(); ?>");                  window.location.reload();                                 }              else {                  alert(                        'Action: ' + action + '\n\n' +                        'Element text: ' + thisid + '\n\n' +                        'X: ' + pos.x + ' Y: ' + pos.y + ' (relative to element)\n\n' +                        'X: ' + pos.docX + ' Y: ' + pos.docY+ ' (relative to document)'                  );              }          }      );         // send message form      $("#sendmsg_div").dialog({          autoOpen: false,          height: 300,          width: 500,          modal: true,          buttons: {              '<?php echo $popmenu_sendmsg; ?>': function() {                    //validate                  var m_to = $('input[name=sendmsg_to]');                  var m_subject = $('input[name=sendmsg_subject]');                  var m_body = $('textarea[name=sendmsg_body]');                    if (m_to.val()=='') {                      m_to.addClass('highlight');                      return false;                  } else { m_to.removeClass('highlight'); }                    if (m_subject.val()=='') {                      m_subject.addClass('highlight');                      return false;                  } else { m_subject.removeClass('highlight'); }                    if (m_body.val()=='') {                      m_body.addClass('highlight');                      return false;                  } else { m_body.removeClass('highlight'); }                    $("#sendmsg_form").submit();                                  $(this).dialog('close');              },              Cancel: function() {                  $(this).dialog('close');              }          },          close: function() {          }      });           $("a.leftmenu_compose_message").click(function(){          $("#sendmsg_div").dialog("open");          return false; });      $("a.mail").click(function(){          $("#sendmsg_to").val($(this).attr('id'));          $("#sendmsg_div").dialog("open");          return false; });          // save search form      $("#savequery_div").dialog({          autoOpen: false,          height: 220,          width: 300,          modal: true,          buttons: {              '<?php echo $popmenu_savequery; ?>': function() {                                             $("#savequery_form").submit();                                $(this).dialog('close');              },              Cancel: function() {                  $(this).dialog('close');              }          },          close: function() {          }      });          $("a.savequery").click(function(){          $("#savequery_div").dialog("open");          return false; });          // confirm box      if($.cookie("modal_confirm")!==null) {          $("body").prepend('<div id="confirm" title="System Message">'+$.cookie("modal_confirm")+'<\/div>');          var g = $("#confirm");          g.html( g.html().replace(/\+/g," ") );          $("#confirm").dialog({              modal: true,              stack: true,              buttons: {                  'OK': function() {                      window.location = "\/" + $.cookie("confirmGo");                       $(this).dialog('close');                  },                  Cancel: function() {                      $(this).dialog('close');                  }              },              close: function(){                  $.cookie("modal_confirm",null);                  $.cookie("confirmGo",null);                  $(this).remove;              }          });        }        // alert box      if($.cookie("alert")!==null) {          $("body").prepend('<div id="alert" title="System Message">'+$.cookie("alert")+'<\/div>');          var f = $("#alert");          f.html( f.html().replace(/\+/g," ") );          $("#alert").dialog({              modal: true,              stack: true,              buttons: {                  'OK': function() {                      $(this).dialog('close');                  }              },              close: function(){                  $.cookie("alert",null); $(this).remove;              }          });      }        <?php if($include_editor) { ?>      // editors      $("textarea.editor").ckeditor( {          skin: 'kama',           toolbar: 'HKEditor',          filebrowserImageUploadUrl: '/php/upload.php',          language: <?php if($_SESSION["user_lng"] == "kor") { echo "'ko'"; } else { echo "'en'"; } ?>      });      <?php } ?>    }); // END DOC.READY      


Solution:1

I figured it out. It wasn't working because javascript can't deal with server-relative URLs. I fixed it by specifying the paths for cookie:

$.cookie("modal_confirm", null, { path: '/' });  

etc.


Note:If u also have question or solution just comment us below or mail us on toontricks1994@gmail.com
Previous
Next Post »