J'essaie actuellement de manipuler une liste non ordonnée avec jQuery, essentiellement j'ai une liste de liens dans une liste non ordonnée, certains utilisateurs ont seulement accès (tous ensemble côté serveur) à certains fichiers/pages. J'espérais utiliser un certain jQuery pour supprimer quelques éléments de la liste du DOM, simplement parce qu'il est plus intéressant pour moi de ne pas cliquer sur un lien, de charger la page et ensuite afficher une erreur parce qu'ils ont accès insuffisant.Manipulation d'éléments de liste avec jQuery
J'ai déjà une configuration d'objet, et j'ai réussi à supprimer un lien autonome du DOM, bien que je n'arrive pas à obtenir le sélecteur correct pour supprimer les éléments de la liste.
Liste HTML:
<div id="browse" class="bubble">
<blockquote>
<ul id="browses">
<li><a href="browse.php?id=15" class="browse">Access</a><br /></li> //trying to remove
<li><a href="browse.php?id=1" class="browse">Accounts</a><br /></li> //trying to remove
<li><a href="browse.php?id=2" class="browse">Browse's</a><br /></li> //trying to remove
<li><a href="browse.php?id=7" class="browse">Commands</a><br /></li> //trying to remove
<li><a href="browse.php?id=4" class="browse">Content</a><br /></li>
<li><a href="browse.php?id=8" class="browse">Logs</a><br /></li>
<li><a href="browse.php?id=10" class="browse">Sessions</a><br /></li>
<li><a href="browse.php?id=11" class="browse">Settings</a><br /></li> //trying to remove
<li><a href="browse.php?id=12" class="browse">Sites</a><br /></li> //trying to remove
</ul>
</blockquote>
<cite>Browse and manage the currently active sites data</cite>
</div>
objet jusqu'à présent:
Session = function(){
this.init(phpdev_session);
}
$.extend(Session.prototype, {
// object variables
vars: '',
init: function(phpdev_session){
// do initialization here
this.vars = phpdev_session;
},
restrict: function() {
if (this.vars.account_class == '40') {
//access client or less, remove manage another site link and a few browses from #browse ul
//note: its all restricted server side, so its just a presentation layer.
$('a#activate').remove();
$('#browses').remove('li:eq(0)').remove('li:eq(1)').remove('li:eq(2)').remove('li:eq(3)').remove('li:eq(7)').remove('li:eq(8)');
}
}
});
$(document).ready(function() {
var session = new Session(phpdev_session);
session.restrict();
});
Simplement une suggestion, mais ne pas afficher un élément de menu sécurisé par rapport à l'afficher, mais en le faisant apparaître "désactivé", peut souvent être une conception d'interface utilisateur très intuitive. Il est souvent plus facile de «voir» ce à quoi on n'a pas accès alors le contraire (ce que vous êtes en train de concevoir). :) – deadbug
typo darnit: vous devriez être votre :) – deadbug