【问题标题】:Is it possible to update only css using ajax without refreshing the tags and how?是否可以使用 ajax 仅更新 css 而无需刷新标签以及如何更新?
【发布时间】:2015-11-17 06:04:11
【问题描述】:

有没有什么方法可以只使用 php 或 ajax 更新页面内容样式而不刷新内容?这里的内容是指 html 标记及其内容,但为其定义的样式除外。样式应该来自 css,并且应该使用类名和 id 链接到标签。

如果可能,请任何人指定完成此操作的提示或方法。最好只使用 php/ajax 和 css 而不是 javacsript 或 jQuery 等其他语言。

我知道如何使用 jQuery 和 javascript 来实现这一点。

简而言之,我只需要更新 html 标签的 css(而不是标签),动态使用 ajax 或 php。可能吗?如果有,请告诉我怎么做?

PHP 和 AJAX 是我将用于显示内容的语言,稍后将使用 AJAX 来更新内容。 PHP 可用于更新或识别类名、样式表等。

【问题讨论】:

  • AJAX JavaScript(AJAX = 异步 JavaScript 和 XML),而 jQuery 不是一种语言。
  • 并非如此。 css 文件由浏览器本身读取,您只需定义位置。但是您可以控制缓存值和生命周期,但这对您没有帮助。对不起。
  • 我知道。在这里,我的意思不是我需要来自服务器端的解决方案,而不是来自客户端的解决方案。所以我们可以使用 AJAX、PHP 但不能使用简单的 Javascript。我需要页面与服务器通信以更新样式而不加载页面或内容。 :)
  • 为什么还要投反对票?你能发表评论解释这个问题有什么问题吗?我很想知道是否有:)

标签: php html css ajax


【解决方案1】:

AJAX = 异步 JavaScript 和 XML。

AJAX 不是一种新的编程语言,而是一种使用现有标准的新方法。

AJAX 是与服务器交换数据并更新网页部分的艺术 - 无需重新加载整个页面。(http://www.w3schools.com/ajax/)

我认为您在使用 javsScript 和 jquery 时感到困惑,但您可以使用 ($(document).ready(function(){}); or ($(function(){ }); 来捕捉任何事件并做出相应的更改。

【讨论】:

  • 我知道,亲爱的。我只是希望它从服务器端更新,如果有的话。 :)
  • 会根据来自服务器端的结果进行更新
【解决方案2】:

如果您想在不重新加载页面的情况下动态更改样式表,您将必须使用 JavaScript。

对于最简单的答案,请参阅 SO:this question

向 CSS 链接标签添加 id 属性以使用 JavaScript 操作标签:

<link id="cssfile" href="css/avocado.css" type="text/css" rel="stylesheet">

设置 href 属性的 Javascript 类似于:

document.getElementById('cssfile').href = 'css/carrot.css';

用户可以通过点击链接来调整颜色:

<a href="#" onclick="document.getElementById('cssfile').href='css/carrot.css';">Carrots</a>

通过更改媒体类型,这还可以让用户快速更改打印布局、手机(或平板电脑)上的首选布局等等。

此解决方案不需要 jQuery。

This website 也有一个很好的脚本可以使用。它增加了一点复杂性和将用户使用的样式表保存在 cookie 中的功能

如果你使用 jQuery,你可以使用this plugin

这个插件旨在模仿 jQuery 的 jQuery.get() AJAX 调用,使用起来很简单

 $.getCSS("getCSS.css");

请参阅the docs 了解更多信息。


另外,this SO 答案是一个非常很好的资源,并提供了有关如何创建动态样式表切换器的分步教程。

【讨论】:

  • 谢谢你 :) 但是,这里使用纯 JavaScript。我想用ajax来实现这一点。我的意思是可以更改类名、id 或者可以修改样式表并显示更新的样式,而无需刷新页面或使用 ajax 触发器,而不是使用 javascript 事件。
  • 但是 AJAX JavaScript。无论如何,请查看我的编辑,因为我提供了几种不同的解决方案,并确保您在 SO 上查看 this answer
猜你喜欢
  • 2010-10-05
  • 1970-01-01
  • 1970-01-01
  • 2016-06-18
  • 2015-01-29
  • 1970-01-01
  • 2012-12-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多