Je veux être en mesure de définir la valeur d'un champ caché à la valeur d'un attribut rel dans un lien:jQuery pour définir la valeur d'un champ masqué?
$("#currentDir").val($(".jstree-clicked").attr("rel"));
Mais cela ne fonctionne pas. Cette expression simple fonctionne très bien cependant:
$("#currentDir").val("TEST");
qui définit le champ caché avec id = CurrentDir à la valeur « TEST ». Mais pourquoi l'autre expression ne fonctionne-t-elle pas?
EDIT:
Comme l'a souligné, l'élément avec la jstree-clicked classe n'existe pas lorsque cette déclaration est appelée. Et comme je l'ai commenté ci-dessous, je suppose qu'il doit entrer en rappel. Mais je ne sais pas où (j'ai essayé plusieurs endroits, mais aucun d'entre eux ne fonctionne).
Voici le code JsTree:
<script type="text/javascript">
var url;
$(function() {
$("#demo2")
.bind("loaded.jstree", function() {
alert($(".jstree-clicked").length); //This works as a callback, but unfortunately the cookie seems to not have been set yet...
$("a").click(function() {
url = "?url=" + $(this).attr("rel");
$('#result').load('/Customers/Files/' + encodeURI(url));
$('#currentDir').val($(this).attr("rel"));
});
}).jstree({
"html_data": {
"ajax": {
"url": "/Customers/Directories/"
}
},
"ui": {
"select_limit": 2,
"select_multiple_modifier": "alt",
"selected_parent_close": "select_parent"//,
},
"themes": {
"theme": "classic",
"dots": true,
"icons": true
},
"plugins": ["themes", "html_data", "ui", "cookies"]
});
});
</script>
Comme vous pouvez le voir, je l'ai déjà un rappel qui définit la valeur du champ caché CurrentDir en cliquant dessus. Mais comme il y aura aussi des postbacks, je recharge la page avec un plugin cookie qui positionne le JsTree au même niveau que précédemment, avec jstree-cliqué signifiant un dossier sélectionné. Donc, la fonction click fonctionne bien, et définit le currentDir, mais après une publication je dois entrer dans un autre callback (je suppose avec l'énoncé que j'ai demandé ici, ie après que l'arbre a été créé.)
« t pense qu'il ya vraiment ici que plusieurs personnes ont demandé, il a la classe et tout, mais je vais donner la même chose, de Firebug toute source html affichage Point:
<a rel="HtmlHelpers" class="jstree-clicked"><ins class="jstree-icon"> </ins>HtmlHelpers</a>
le problème semble que ce soit ne l'a pas encore quand la fonction est appelée. Donc, encore une fois, toute aide pour obtenir la déclaration au bon endroit (un rappel?) Apprécié!
EDIT 2:
Ok, alors je suis un rappel qui déclenche en fait après que l'arbre est chargé (voir plus dans la partie .bind ci-dessus avec un commentaire). Mais il semble que même si l'arbre est chargé (confirmé par une boîte d'alerte indiquant le nombre d'éléments), le plugin cookies ne semble pas avoir été lancé, donc la déclaration que je cherche est toujours inutile. L'instruction que j'ai insérée maintenant est celle suggérée dans l'une des réponses, pour vérifier si un élément jstree-cliqué existe et ce n'est toujours pas le cas. Donc, quelqu'un sait comment je peux obtenir cette invocation après que le cookie ait défini la classe jstree-clicked?
s'il vous plaît donnez-nous votre code html contenant les éléments impliqués – jigfox
+1, code s'il vous plaît –
Le code que vous avez fonctionne très bien pour moi, le problème doit se trouver ailleurs. http://jsfiddle.net/e66kQ/ –