当用户点击标签页时,我编写了动态加载自举程序标签的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事件处理程序