【问题标题】:Styling jQuery UI Datepicker differently per page为每个页面设置不同的 jQuery UI Datepicker 样式
【发布时间】:2010-07-26 05:59:49
【问题描述】:

我在我的网站上使用 jQuery UI datepicker,并希望根据它所在的页面对其进行稍微不同的样式设置。 但是,我遇到了一个小问题,因为包含日历的 div 没有嵌套到应用 .datepicker() 函数的元素中。所以我不能在每页上设置不同的样式。例如。

<body>
<div id="wrapper">...</div>
<div id="datepicker">...</div>
</body>

我知道一种解决方案是根据页面标识正文,但我真的不想这样做,因为我正在使用 CMS,并且目前它向包装器 div 添加类以确定哪个页面。但是,由于 datepicker div 出现在包装器之外,我无法正确设置样式。

是一种配置 datepicker 以在特定 div 中创建日历 div 的方法,还是我必须对 body 进行标识?

谢谢

【问题讨论】:

    标签: javascript jquery html css


    【解决方案1】:

    您可以使用 jquery 向 #datepicker 添加一个类。

    $("#wrapper.pageClass").nextAll("#datepicker").addClass("someClass");
    

    编辑:

    或者您可以使用 jquery 将 #datepicker 与 div 一起包装。如果#wrapper 只定义了一个类,以下可能会起作用。

    var pageClass = $("#wrapper").attr("class");
    $("#datepicker").wrap("<div class='" + pageClass + "' />"
    

    【讨论】:

      【解决方案2】:

      如果我没看错,而且这已经是漫长的一天,您有一个非常简单的选项可用,但它确实需要一些额外的标记。给 body 一个 id(每个页面的 id 不同):

      body#pageOne #datepicker {/* css for pageOne */}
      
      body#pageTwo #datepicker {/* css for pageTwo */}
      

      如果没有别的,你可以提供一些额外的语义信息;虽然它可能不像你想的那么容易。

      或者,如 cmets 中所述(感谢 @Bryan Downing),如果您不想将 id 添加到 body,您可以使用 jQuery 来实现类似的效果,但这取决于您的 CMS 的应用方式向#wrapper 上课。但是像这样:

      $(document).ready(
          function() {
      
              var pageClass = $('#wrapper').attr('class');
      
              $('#datepicker').addClass(pageClass);
          }
      );
      

      然后,希望这应该允许您像这样定位 CSS:

      #datepicker.pageOneClassName {/* css */}
      
      #datepicker.pageTwoClassName {/* css */}
      

      但这显然依赖于 CMS 应用的连贯、可预测/已知的命名策略。虽然因为这与Bryan's answer 如此接近,但我赞成他的。虽然我将把它留在原处,因为它提供的解决方案略有不同。

      【讨论】:

      • 他的问题是他试图避免在正文中添加 id。不知道除了用jquery添加一个类或用特定的div包装#datepicker之外是否还有其他方法。
      • @Bryan,+1...我无法相信我错过了...哦! Loooong 天... =/
      • 谢谢!反正我更喜欢你的方式。在#datepicker 周围包装另一个DOM 元素当然似乎没有必要。您添加课程的方式比我的更干净。我不知道为什么我没有想到将类从#wrapper 添加到#datepicker。我猜你不是唯一一个度过漫长的一天的人......:P
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-24
      • 2016-12-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多