2010-03-30 7 views
1

Hai c'est ma fonction jquery,Comment rendre cette fonction jquery réutilisable?

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"); 
      }); 
     } 
    }); 
} 

Dans ma page Je possède ce script jquery,

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

Et ma page a

<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>

Comment faire d'autres boutons de lien pour appeler cette fonction avec diff paramètre curPage ...

Répondre

2

Je pense que vous voulez dire que vous voulez appliquer le texte de liens avec ID commençant par linkbtn comme premier paramètre:

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

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

Alternativement, vous pouvez simplement utiliser un sélecteur de classe:

$("a.page-numbers").click(function() { 
    getRecordspage($(this).text(), 5); 
    return false; 
}); 
+0

@Karim qui a travaillé ..... –

+0

+1, Très simple contrairement au mien .... :) Les numéros de page est bien meilleur. –

1

Si vous ne me dérange pas en utilisant javascript Plain Old

<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> 

Assurez-vous preventDefault sur les <a> tags.

Sinon, si vous voulez vraiment passer à JQuery.

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

MISE À JOUR Utilisez les sélecteurs de classe (comme karim79) suggéré.

+0

@Elite irai avec jquery devrais-je utiliser href = "#" pour mes ancres –

+0

Certains navigateurs rafraichissent la page si aucun 'href' n'est trouvé. Vous pouvez faire 'href =" javascript: void (0) "' pour ne rien faire. C'est essentiellement à vous de choisir le navigateur que vous voulez. –

Questions connexes