如何将方法附加到json对象

时间:2017-02-16 19:51:39

标签: javascript jquery json

当用户点击标签页时,我编写了动态加载自举程序标签的javascript。基本上,当用户点击选项卡时,我会获得在选项卡上预先配置为data属性的URL,然后使用AJAX从服务器加载PartialView。 这个javascript是通用的,即时通讯在多个网页上使用它并且工作正常。

现在我需要在发出AJAX请求之前在click事件处理程序中动态获取一些数据。

这是代码

Index.cshtml

    <ul class="nav nav-tabs">
        <li><a data-toggle="tab" href="#a" data-url="@Url.Action("GetA", "Home")">A</a></li>
        <li><a data-toggle="tab" href="#b" data-url="@Url.Action("GetB", "Home")">B</a></li>
        <li><a data-toggle="tab" href="#c" data-url="@Url.Action("GetC", "Home")">C</a></li>
    </ul>
    <div class="tab-content">
        <div id="a" class="tab-pane fade">
        </div>
        <div id="b" class="tab-pane fade">
        </div>
        <div id="c" class="tab-pane fade">
        </div>
    </div>

常见的Javascript

var tabStrip = (function () {
var module = {};    

 module.configureTabs = function (options) { 

    $(".nav-tabs > li > a").click(function (e) {     

        // I want to call a method here      ???????
        // something like options.getData(); ???????
        // Once i get data I would append this data to url

        var $tab = $(this);            
        var url = $tab.data("url");
        var href = $tab.attr("href");
        $(href).load(url, function (result) {               
            // raise onLoad event
            if (options != undefined && options.onLoad != undefined) {
                options.onLoad($tab);
            }
        });

        // raise click event
        if (options != undefined && options.onClick != undefined) {
            options.onClick($(this));
        }
    });        
}

return module;

})();

这就是我从Index.cshtml调用configureTabs的方式

$(function () {      
    tabStrip.configureTabs({
       onLoad: function(e){
         // do something here
       }  

       // how do i attach a method here that returns some data. ????
       // tabStrip.configureTabs function needs invoke this method inside click event handler ???

    });
})

如何将方法附加到options参数。我应该能够从click事件处理程序

中调用此方法

0 个答案:

没有答案