使用jquery或JavaScript在不同页面上触发事件

使用jquery或JavaScript在不同页面上触发事件,javascript,jquery,css,events,event-handling,Javascript,Jquery,Css,Events,Event Handling,我正在做一个有2页的项目 1) 索引和 2) 背景 我有一个按钮来关闭一个元素并在设置页面上隐藏它。问题是,当我点击关闭设置页面并选择保存时,我想隐藏索引页面上的元素。我无法实现同样的目标。任何帮助都将不胜感激。 我发现的大多数解决方案只是使用Jquery重新定向到其他页面,但我想触发一个事件,而不仅仅是重新定向 我已经为同样的内容创建了一个代码笔: $(“.list_sbar li”)。单击(函数(e){ 如果($(this).outerWidth()-34您可以将cookie值(可在单击关闭

我正在做一个有2页的项目

1) 索引和 2) 背景

我有一个按钮来关闭一个元素并在设置页面上隐藏它。问题是,当我点击关闭设置页面并选择保存时,我想隐藏索引页面上的元素。我无法实现同样的目标。任何帮助都将不胜感激。 我发现的大多数解决方案只是使用Jquery重新定向到其他页面,但我想触发一个事件,而不仅仅是重新定向

我已经为同样的内容创建了一个代码笔:

$(“.list_sbar li”)。单击(函数(e){

如果($(this).outerWidth()-34您可以将cookie值(可在单击关闭按钮时设置)与
$(window).focus
事件侦听器相结合,该事件侦听器在索引页聚焦时检查cookie值并根据值隐藏或显示元素

Cookies文档:

请尝试以下操作:

  $(document).ready(function(){
    if( document.cookie.indexOf('element_closed=')== -1){
        document.cookie = 'element_closed=false; path=/';
     }
    // document.cookie = "element_closed=true"; // uncomment to test focusing window with element hidden
    // used to get an individual cookie by name
    // from http://stackoverflow.com/questions/10730362/get-cookie-by-name
    function getCookie(name) {
      var value = "; " + document.cookie;
      var parts = value.split("; " + name + "=");
      if (parts.length == 2) return parts.pop().split(";").shift();
    }

    function hideElement(){
      $(".toggle_target").hide();
      document.cookie = 'element_closed=true; path=/'
      console.log(document.cookie);
    }

    $(window).focus(function(){
      //console.log(document.cookie);
      console.log(getCookie('element_closed'));
      if(getCookie('element_closed') == 'true'){
        hideElement();
      }
    });

    $(".toggle").on('click', function(e){
      e.preventDefault();
      hideElement();
    });
  });

工作JSFIDLE:

我没有收到你的问题。实际上你想在单击关闭按钮时隐藏一个div??是的,我想在单击关闭按钮时关闭一个div。你可以在上面的代码笔中检查相同的内容,但目前两个事件都在同一页上。我希望它们在不同的页上。谢谢你的努力。我正在尝试h JS cookie,但尚未修复。将尝试看看这是否有帮助。将期待您的代码。我正在尝试,并将更新,如果我得到答案更正-该代码需要调整,完成后将发表评论。感谢您的代码。现在我有一些问题要问您。代码在同一页上运行良好,但如何在上使用它们单独的页面?从您的JSFIDLE代码中,我在索引页面上使用div标记,在设置页面上使用标记。我在这两个页面上都尝试了脚本,但都不起作用。我们不需要定义试图触发事件的其他页面的路径吗?更新了代码,在cookie上设置了path属性。
  $(document).ready(function(){
    if( document.cookie.indexOf('element_closed=')== -1){
        document.cookie = 'element_closed=false; path=/';
     }
    // document.cookie = "element_closed=true"; // uncomment to test focusing window with element hidden
    // used to get an individual cookie by name
    // from http://stackoverflow.com/questions/10730362/get-cookie-by-name
    function getCookie(name) {
      var value = "; " + document.cookie;
      var parts = value.split("; " + name + "=");
      if (parts.length == 2) return parts.pop().split(";").shift();
    }

    function hideElement(){
      $(".toggle_target").hide();
      document.cookie = 'element_closed=true; path=/'
      console.log(document.cookie);
    }

    $(window).focus(function(){
      //console.log(document.cookie);
      console.log(getCookie('element_closed'));
      if(getCookie('element_closed') == 'true'){
        hideElement();
      }
    });

    $(".toggle").on('click', function(e){
      e.preventDefault();
      hideElement();
    });
  });