每当您单击元素时,此代码都会切换元素的颜色。但是如何在第一个切换和第二个切换上发送带有查询字符串的GET 请求? ?toggle=True
?toggle=False
3 回答
哦,我可以看到它出现在 Firebug 中,但不在页面的 url 中。知道为什么吗?
除非您使浏览器加载一个全新的页面,否则发出请求和更改地址栏中的 URI 是两件不同的事情。
如果你想这样做,那么你应该忘记使用客户端 JavaScript 并移动你的逻辑服务器端并使用常规链接。
在服务器端逻辑中,查询字符串参数的值将用于确定class
div 的值(用于设置样式)和href
链接的值(即查询字符串中是否有 True 或 False)。
如果您想避免加载新页面,那么您正在查看两个单独的步骤。
您已经拥有的第一个(使用 JS 更改样式)。
其余的变得更加复杂......</p>
首先,您需要服务器端逻辑,以便查询字符串中的 True/False 将正确设置页面的初始状态。这将与为先前方法描述的逻辑相同。
然后,您需要更新 URI,使其与将在您将当前页面更改为的状态下加载页面的 URI 匹配。这是使用History API(pushState
和朋友)完成的。有关此问题的主题有更多详细信息。
如果您想将更改通知服务器,那么您需要使用jQuery.get
, 以及更新页面并更改地址栏中的 URI。为了提高效率,您可能应该添加一个额外的查询字符串参数(这样您就可以从正常页面加载中判断它是否来自 Ajax),并让服务器在看到该参数时返回一个简单的确认而不是整个 HTML 文档。
只需使用 jQuery 的 get 方法来执行此操作,或者在您的切换函数中自己执行此操作。
一个实用但非常基本的解决方案可能是使用局部变量作为计数器。如果计数器是偶数,则发送 True,如果奇数,则发送 False。
每次点击增加计数器:)