繁体   English   中英

结合两个Javascript和jQuery脚本

[英]Combining two Javascript and jQuery scripts

我想结合两个单独的Javascript / jQuery脚本。 一种是选项卡式搜索框脚本,它确定提交表单时的目的地。 另一个是简单的Javascript搜索脚本。

我想结合两个脚本,以便选项卡式脚本确定从搜索脚本中提取内容的位置。 我希望人们能理解我要描述的内容。

我的Javascript搜索脚本是:

$(document).ready(function(){
    $("#query").keyup(function(e){
        if(e.keyCode==13){
            var query=$(this).val();
            var yt_url='search.php?q='+query;
            window.location.hash='search/'+query+'/';
            $.ajax({
                type:"GET",
                url:yt_url,
                dataType:"html",
                success:function(results){
                   $('#results').html(results);
                }
            });
        }
    });
});

我的选项卡式搜索脚本是:

$(document).ready(function () {
    Tabs.types.init('search');
    Tabs.search.init();
});

var Tabs = {
    search: {
        init: function () {
            jQuery(Tabs.element.form).bind('submit', function (evt) {
                evt.preventDefault();
                Tabs.search.submit();
            });
        },
        submit: function () {
                var type = Tabs.types.selected;
                var url = type;
                window.location.href = url;
        },
    },
    types: {
        init: function (selected) {
            Tabs.types.selected = selected;
            jQuery('.' + Tabs.types.selected).addClass('selected');
            jQuery(Tabs.element.types).bind('click', function () {
                Tabs.types.click(jQuery(this));
            });
        },
        click: function (obj) {
            jQuery(Tabs.element.types).each(function () {
                if (jQuery(this).hasClass('selected')) {
                    jQuery(this).removeClass('selected');
                }
            });
            if (obj.hasClass('web')) Tabs.types.selected = 'search';
            if (obj.hasClass('images')) Tabs.types.selected = 'images';
            if (obj.hasClass('videos')) Tabs.types.selected = 'videos';
            if (obj.hasClass('news')) Tabs.types.selected = 'news';
            if (obj.hasClass('social')) Tabs.types.selected = 'social';
            obj.addClass('selected');
        }
    },
    element: {
        types: '.type',
        form: '#search',
    },
};

您可以从Tabs.types.selected获取选定的选项卡,并在查询中知道它。 例如

$(document).ready(function(){
    $("#query").keyup(function(e){
        if(e.keyCode==13){
            var query=$(this).val();
            var yt_url='search.php?tab=' + Tabs.types.selected + '&q=' + encodeURIComponent(query);
            window.location.hash='search/'+query+'/';
            $.ajax({
                type:"GET",
                url:yt_url,
                dataType:"html",
                success:function(results){
                   $('#results').html(results);
                }
            });
        }
    });
});

我建议使用encodeURIComponent编码查询,否则,如果用户类型&和? 和其他符号,然后再也不会以参数形式到达您的页面。

另外,请将var Tabs = { search: { ..etc放在此代码之前,以确保找到Tabs。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM