jQuery:使用触发器类附加加载的url

时间:2011-03-10 18:00:48

标签: jquery ajax class

我正在使用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&amp; view =。 我会尝试你能想到的任何东西!谢谢!

1 个答案:

答案 0 :(得分: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);
            }
        });
   });
});