Php 在ajax中组合多种功能 我用Zurb基金会制造MO过滤器的药片。

Php 在ajax中组合多种功能 我用Zurb基金会制造MO过滤器的药片。,php,jquery,ajax,zend-framework,zurb-foundation,Php,Jquery,Ajax,Zend Framework,Zurb Foundation,有可能把这个结合起来吗?我只想使用1个函数,因为它们几乎相同,只是变量在变化。是否有可能使它更具活力。我认为.val()与定义列表不兼容 <dl class="tabs pill"> <dd class="active"><a class="allTab" href='#'>ALL</a></dd> <dd><a class="Tab1" href="#">filter1</a></dd

有可能把这个结合起来吗?我只想使用1个函数,因为它们几乎相同,只是变量在变化。是否有可能使它更具活力。我认为.val()与定义列表不兼容

<dl class="tabs pill">
  <dd class="active"><a class="allTab" href='#'>ALL</a></dd>
  <dd><a class="Tab1" href="#">filter1</a></dd>
  <dd><a class="Tab2" href="#">filter2</a></dd>
  <dd><a class="Tab3" href="#">filter3</a></dd> 
</dl>
试着这样做:

<dl class="tabs pill">
   <dd class="active"><a class="allTab" href='#'>ALL</a></dd>
   <dd><a class="tab" id="Tab1" href="#" data-certiria='filter1'>filter1</a></dd>
   <dd><a class="tab" id="Tab2" href="#" data-certiria='filter1'>filter2</a></dd>
   <dd><a class="tab" id="Tab3" href="#" data-certiria='filter1'>filter3</a></dd> 
</dl>

function filterTab(cretiria, clickedTab) {
    $('#searchForm1').ajaxSubmit({
        type: 'get',
        url: '/sample/search?str=' + cretiria,
        beforeSend: function () {
            clickedTab.text('Filtering...');
            clickedTab.css({
                "font-size": "11px"
            });
        },
        success: function (html) {
            $('.sample').html(html);
            clickedTab.text(cretiria);
            clickedTab.css({
                "font-size": "14px"
            });
        },
        error: function () {
            alert('Network Error..Please try again.');
        }
    });
}

$('.tab').live('click', function () {
    var dis = $(this);
    var str = $(this).data("certiria");
    filterTab(str, dis)
});

功能过滤器选项卡(cretiria,单击选项卡){
$('#searchForm1')。ajaxSubmit({
键入:“get”,
url:'/sample/search?str='+cretiria,
beforeSend:函数(){
单击选项卡文本(“筛选…”);
clickedTab.css({
“字体大小”:“11px”
});
},
成功:函数(html){
$('.sample').html(html);
单击选项卡文本(cretiria);
clickedTab.css({
“字体大小”:“14px”
});
},
错误:函数(){
警报('网络错误..请重试');
}
});
}
$('.tab').live('click',函数(){
var dis=$(本);
var str=$(this).data(“certiria”);
过滤器选项卡(str、dis)
});
不再处理相同的ajax请求代码,而是创建一个单独的函数。 然后使用该选项卡中的数据元素保存所需的筛选条件。 然后使用一个通用的click函数检索该数据元素并将其发送到ajax函数来管理请求

像这样试试:

<dl class="tabs pill">
   <dd class="active"><a class="allTab" href='#'>ALL</a></dd>
   <dd><a class="tab" id="Tab1" href="#" data-certiria='filter1'>filter1</a></dd>
   <dd><a class="tab" id="Tab2" href="#" data-certiria='filter1'>filter2</a></dd>
   <dd><a class="tab" id="Tab3" href="#" data-certiria='filter1'>filter3</a></dd> 
</dl>

function filterTab(cretiria, clickedTab) {
    $('#searchForm1').ajaxSubmit({
        type: 'get',
        url: '/sample/search?str=' + cretiria,
        beforeSend: function () {
            clickedTab.text('Filtering...');
            clickedTab.css({
                "font-size": "11px"
            });
        },
        success: function (html) {
            $('.sample').html(html);
            clickedTab.text(cretiria);
            clickedTab.css({
                "font-size": "14px"
            });
        },
        error: function () {
            alert('Network Error..Please try again.');
        }
    });
}

$('.tab').live('click', function () {
    var dis = $(this);
    var str = $(this).data("certiria");
    filterTab(str, dis)
});

功能过滤器选项卡(cretiria,单击选项卡){
$('#searchForm1')。ajaxSubmit({
键入:“get”,
url:'/sample/search?str='+cretiria,
beforeSend:函数(){
单击选项卡文本(“筛选…”);
clickedTab.css({
“字体大小”:“11px”
});
},
成功:函数(html){
$('.sample').html(html);
单击选项卡文本(cretiria);
clickedTab.css({
“字体大小”:“14px”
});
},
错误:函数(){
警报('网络错误..请重试');
}
});
}
$('.tab').live('click',函数(){
var dis=$(本);
var str=$(this).data(“certiria”);
过滤器选项卡(str、dis)
});
不再处理相同的ajax请求代码,而是创建一个单独的函数。 然后使用该选项卡中的数据元素保存所需的筛选条件。
然后使用一个通用的click函数检索该数据元素并将其发送到ajax函数来管理请求

使用
.on
进行委派,而不是
.live
。然后,您可以使用几乎相同的方法,除了:

$(".Tabs").on('click', 'dd', function () {
    var str = $(this).text();
    //...
});

使用
.on
进行委派,而不是
.live
。然后,您可以使用几乎相同的方法,除了:

$(".Tabs").on('click', 'dd', function () {
    var str = $(this).text();
    //...
});

这个问题听上去更适合这个问题听上去更适合欢呼,请记住,如果有重复的代码将其提取到函数中,可重用代码组件总是如此……欢呼,请记住,如果有重复的代码将其提取到函数中,可重用代码组件总是如此。。。