【问题标题】:jQuery: appending loaded url with class of triggerjQuery:使用触发器类附加加载的 url
【发布时间】:2011-03-10 18:00:47
【问题描述】:

我正在使用 jQuery 通过 ajax 加载一个部分。我想做一个非常通用、紧凑的函数来根据点击的标签加载相应的部分。

这是棘手的部分。

我想获取单击的选项卡的类,并附加将与选项卡所具有的类一起加载的 url。 这是我目前所拥有的,我相信它可以做得更紧凑。

JS:

$.ajaxSetup ({
    cache: false
});
var ajax_load = "<img src='../../images/icons/loading.gif' alt='loading...' />";

var loadUrl = "/include/?section=accountsettings&view=";

$("#accountsettings").html(ajax_load).load(loadUrl + "accountsettings");

$(".filterCat a").click(function(){
    $("#contentSm div").fadeOut(200);
});

$(".accountsettings").click(function(){
    $("#accountsettings").html(ajax_load).load(loadUrl + "accountsettings");
    $("#accountsettings").delay(250).fadeIn(250);
});

$(".editprofile").click(function(){
    $("#editprofile").html(ajax_load).load(loadUrl + "editprofile");
    $("#editprofile").delay(250).fadeIn(250);
});

$(".notifications").click(function(){
    $("#notifications").html(ajax_load).load(loadUrl + "notifications");
    $("#notifications").delay(250).fadeIn(250);
});

$(".broadcast").click(function(){
    $("#broadcast").html(ajax_load).load(loadUrl + "broadcast");
    $("#broadcast").delay(250).fadeIn(250);
});

$(".import").click(function(){
    $("#import").html(ajax_load).load(loadUrl + "import");
    $("#import").delay(250).fadeIn(250);
});

HTML:

<div id="filter" class="span-3">
    <div id="accountSettingsTabs">
        <div class="filterCat section">
            <a class="accountsettings sel"><span class="wIcon accountSet"></span>Account</a>
            <a class="editprofile"><span class="wIcon send"></span>Edit Profile</a>
            <a class="notifications"><span class="wIcon emailNoti"></span>Notifications</a>
            <a class="broadcast"><span class="wIcon broadcast"></span>Broadcast</a>
            <a class="import"><span class="wIcon import"></span>Import</a>
        </div>
    </div>
</div>
<div id="contentSm" class="span-8">
    <div id="accountsettings" class="section"></div>
    <div id="editprofile" class="section"></div>
    <div id="notifications" class="section"></div>
    <div id="broadcast" class="section"></div>
    <div id="import" class="section"></div>
</div>

所以我希望将 /include/?section=accountsettings&view= 附加到单击锚的第一类。 我会尝试任何你能想到的!谢谢!

【问题讨论】:

    标签: jquery ajax class


    【解决方案1】:

    像这样创建标签

    <a class="ajaxifiedTab notifications" _param="notifications" />
    

    Javascript

    var loadUrl = "/include/?section=accountsettings&view=";
    jQuery(function(){
       jQuery('.ajaxifiedTab').bind('click',function(e){    
           e.preventDefault();
           var _class=jQuery(e.target).attr('_param');
           jQuery.ajax({
                url:loadUrl +_class,
                type:'get',  //or post as u think
                success:function(data){
                    jQuery('#'+_class).html(data);
                }
            });
       });
    });
    

    【讨论】:

    • 非常感谢。这将为我提供一个非常坚实的基础。这真的很好用,但对于其他看到这个的人来说,我相信你需要在 type:'get' 之后加一个逗号。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-11
    • 1970-01-01
    • 2016-10-01
    相关资源
    最近更新 更多