2010-07-17 5 views
0

J'utilise jquery edit in place lib et j'ai un problème lorsque j'essaie d'utiliser un sélecteur de classe pour sélectionner plusieurs éléments modifiables.jquery-in-place-éditeur pré-hooks?

J'appelle editInPlace sur un tableau d'éléments, donc je n'ai pas besoin de répéter cet appel pour chaque élément éditable.

Ce que je n'arrive pas à comprendre est comment ajouter l'identifiant de l'article à l'URL. J'utilise des rails, j'ai donc besoin d'une URL comme tags/10

Savez-vous comment modifier dynamiquement l'URL ou les paramètres pour chaque élément modifiable? J'ai essayé d'utiliser le paramètre callback mais cela annule la requête ajax.

html:

<li class="tag" id="tag_1">bright light</li> 
<li class="tag" id="tag_2">soft light</li> 

jQuery:

$('.tag').editInPlace({ 
    url:"/tags/" // NEED TO ADD THE ASSET ID TO THE URL example /tags/10 
}); 

Répondre

1

Vous pouvez utiliser .each(), comme ceci:

$('.tag').each(function() { 
    $(this).editInPlace({ 
    url:"/tags/" + this.id.replace('tag_','') 
    }); 
}); 

Cela prend juste l'ID et supprime la partie tag_ via .replace() avant l'ajoutant.

+0

Pourquoi ne pas simplement faire: '$ ('étiquette.) EditInPlace ({ url: "/ tags /" + $ (this) .id.replace (' tag_', '');} .); ' ?? –

+0

Je suis vraiment désolé de taper '$ (this) .id' (il suffit de copier/coller le code). Cela aurait dû être '$ (this) .attr (id)'. De plus, je pensais que jQuery traitait de "ceci" toujours se référer à la fonction parente plutôt qu'à la fenêtre/document. Quoi qu'il en soit, je suppose que vous avez probablement raison sur la deuxième partie aussi. Devrait essayer. Merci de clarifier. –

+1

@Shripad - Vous avez raison de dire que * habituellement * fait référence à la fonction parent ... et c'est aussi le cas ici, la fonction parent est le gestionnaire 'document.ready'. L'important est que simplement appeler '.plugin (option)' ne crée pas de fermeture, vous êtes toujours * dans * cette fonction parent ... alors que '.each()' crée une fermeture, où 'this' fait référence à l'élément que vous voulez :) –