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

时间:2013-12-16 18:33:58

标签: jquery html css

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

我的功能在下面,似乎在corerctly工作。但我现在需要“循环”该函数,或者创建另一个实例。

这样做的目的是允许用户点击相同的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/

1 个答案:

答案 0 :(得分:0)

循环的一种简单方法是在DOM元素上切换虚拟类。在你的情况下,你想让show-hide动作循环点击$('。windguru'),然后就是 当你得到ajax响应时,$('.windguru').addClass('loaded') 点击$('.windguru').removeClass('loaded')$('.windguru').hasClass('loaded') $('.windguru').hasClass('loaded')。 所以就像这样

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

    进一步改进
    • 缓存jQuery对象,而不是每次都传递选择器
    • 仅在第一次请求数据时使用ajax请求。
相关问题