Как сделать эту функцию JQuery многоразовым? - PullRequest
1 голос
/ 30 марта 2010

Хай, это моя функция jquery,

function getRecordspage(curPage, pagSize) {
    $.ajax({
        type: "POST",
        url: "Default.aspx/GetRecords",
        data: "{'currentPage':" + curPage + ",'pagesize':" + pagSize + "}",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function(jsonObj) {
            var strarr = jsonObj.d.split('##');
            var jsob = jQuery.parseJSON(strarr[0]);
            $.each(jsob.Table, function(i, employee) {
                $('<div class="resultsdiv"><br /><span class="resultName">' + employee.Emp_Name + '</span><span class="resultfields" style="padding-left:100px;">Category&nbsp;:</span>&nbsp;<span class="resultfieldvalues">' + employee.Desig_Name + '</span><br /><br /><span id="SalaryBasis" class="resultfields">Salary Basis&nbsp;:</span>&nbsp;<span class="resultfieldvalues">' + employee.SalaryBasis + '</span><span class="resultfields" style="padding-left:25px;">Salary&nbsp;:</span>&nbsp;<span class="resultfieldvalues">' + employee.FixedSalary + '</span><span style="font-size:110%;font-weight:bolder;padding-left:25px;">Address&nbsp;:</span>&nbsp;<span class="resultfieldvalues">' + employee.Address + '</span></div>').appendTo('#ResultsDiv');
            });
            $(".resultsdiv:even").addClass("resultseven");
            $(".resultsdiv").hover(function() {
                $(this).addClass("resultshover");
            }, function() {
                $(this).removeClass("resultshover");
            });
        }
    });
}

На моей странице есть скрипт jquery,

$("#lnkbtn0").click(function() {
                 getRecordspage(1, 5)
            });

А на моей странице есть

<a ID="lnkbtn0" class="page-numbers">1</a>
<a ID="lnkbtn1" class="page-numbers">2</a>
<a ID="lnkbtn2" class="page-numbers">3</a>
<a ID="lnkbtn3" class="page-numbers">4</a>

Как заставить другие кнопки ссылки вызывать эту функцию с параметром diff curPage ...

Ответы [ 2 ]

2 голосов
/ 30 марта 2010

Я думаю, вы хотите применить текст ссылок с идентификатором, начинающимся с linkbtn в качестве первого параметра:

$("a[id^=linkbtn]").click(function() {
    getRecordspage($(this).text(), 5);
    return false;
});

См. http://api.jquery.com/attribute-starts-with-selector/

В качестве альтернативы, вы можете просто использовать селектор класса:

$("a.page-numbers").click(function() {
    getRecordspage($(this).text(), 5);
    return false;
});
1 голос
/ 30 марта 2010

Если вы не возражаете против использования простого старого javascript

<a ID="lnkbtn0" class="page-numbers" href="#" onclick="getRecordsPage(1,5)">1</a>
<a ID="lnkbtn1" class="page-numbers" href="#" onclick="getRecordsPage(2,5)">2</a>
<a ID="lnkbtn2" class="page-numbers" href="#" onclick="getRecordsPage(3,5)">3</a>
<a ID="lnkbtn3" class="page-numbers" href="#" onclick="getRecordsPage(4,5)">4</a>

Убедитесь, что вы preventDefault на <a> тегах.

Иначе, если вы действительно хотите перейти на JQuery.

$("a[id^=linkbtn]").each(function() {
   $(this).click(function() {
       getRecordspage($(this).text(), 5);
    });
});

ОБНОВЛЕНИЕ Использование предложенных селекторов классов (как karim79).

...