在页面重新加载后触发jQuery搜索

时间:2011-07-16 18:40:43

标签: javascript jquery html

我有一个jQuery搜索脚本,它使用标签让用户定义他们想要使用的搜索类型。当用户搜索时,会创建一个类似#类型 / 查询 /的网址。但是,当您重新加载页面时,单击转到其他页面的结果或从上一页返回的搜索结果不再存在。我的问题是,如何在重新加载页面时再次触发jQuery搜索?

我的jQuery代码是:

$(document).ready(function () {
    $('[id^=type_]').click(function () {
        type = this.id.replace('type_', '');
        $('[id^=type_]').removeClass('selected');
        $('#type_' + type).addClass('selected');
        return false;
    });
    $('#type_search').click();
    $('#query').keyup(function () {
        var query = $(this).val();
        var url = '/' + type + '/' + query + '/';
        window.location.hash = '' + type + '/' + query + '/';
        document.title = $(this).val() + ' - My Search Script';
        $('#results').show();
        if (query == '') {
            window.location.hash = '';
            document.title = 'My Search Script';
            $('#results').hide();
        }
        $.ajax({
            type: 'GET',
            url: url,
            dataType: 'html',
            success: function (results) {
                $('#results').html(results);
            }
        });
    });
    var textlength = $('#query').val().length;
    if (textlength <= 0) {
        $('#query').focus();
    } else {
        $('#query').blur();
    }
});

2 个答案:

答案 0 :(得分:1)

您需要做的就是在页面加载时单击查询按钮时执行的操作相同:

$(function () {
   if (window.location.hash != "") {
      // run the search function here
   }
});

答案 1 :(得分:0)

由于哈希代码应保留在window.location.hash中,为什么不再读取哈希?这是一个小教程:Get URL parameters & values with jQuery