jquery - 单击后如何更改选择器功能

标签 jquery html css

我正在尝试创建一些 jquery,它将允许用户单击 div 来发出 http 请求。除了显示/隐藏之外,主要目的是减少 http 请求,因为内容仅在用户请求时加载。

我的功能在下面并且似乎可以正常工作。但是我现在需要“循环”函数,或者创建另一个实例。

这样做的目的是让用户点击同一个 div 并隐藏内容。

我们非常欢迎任何关于更好的方法的想法或建议!

$(document).ready(function () {
    $('.windguru').click(function () {
        $('.loader').show(400, null, function () {
            alert('loader has been shown')
            $('.windguru-content').load("windguru1.html", function () {
                alert('iframe content loaded, will now close the loader')
                $('.loader').hide(500);
            });
        });
    });
});

这是 jsfiddle: http://jsfiddle.net/5CJ74/

最佳答案

一种简单的循环方式是在 DOM 元素上切换一个虚拟类。在您的情况下,您希望显示隐藏操作在点击 $('.windguru') 时循环,然后只需 $('.windguru').addClass('loaded') 当你得到 ajax 响应时 在点击 $('.windguru').hasClass('loaded') 时执行 $('.windguru').removeClass('loaded')。 所以它是这样的

  1. 检查是否 $('.windguru').hasClass('loaded')
  2. 如果没有,则 $('.windguru').addClass('loaded') 并执行其余的 ajax 加载
  3. 如果是,则 $('.windguru').removeClass('loaded') 并隐藏内容。

你可以进一步改进,

  • 缓存 jQuery 对象而不是每次都传递选择器
  • 仅在第一次请求数据时使用ajax请求。

关于jquery - 单击后如何更改选择器功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20618238/

相关文章:

jquery - 动画粘性菜单 JQUERY

Javascript 在下拉选择中停止 TR 单击事件

javascript - 如何在 javascript 函数中使用 html 标签构建列表

html - 页面上超出了列数,忽略了列宽

javascript - 在 td 元素上应用填充抛出异常

JavaScript通过点击改变当前元素的颜色

css - border-radius + gradient + box-shadow 造成参差不齐的边缘

javascript - 使用 jQuery tablesorter 和 javascript 表数组

javascript - 使用 Promises 和 AJAX 调用顺序执行

jquery - Ajax 无法在 IE11 中工作,错误代码 0x2f78