J'ai un code jQuery dans un ascx qui prend un contenu de cellule à partir d'un gridview et le manipule, puis l'écris dans une autre cellule.jQuery - change la fonction de l'événement click au chargement de la page
Il est activé par un clic sur la ligne gridview.
(Chaque ligne a une 1ère cellule avec un nom de fichier Word L'utilisateur clique sur une ligne - jQuery prend le nom du fichier dans la première cellule et change l'extension en flv/mp3 - vérifie s'il y a un fichier avec le nouveau nom - s'il y a un fichier il crée un lien d'image vers ce fichier)
J'ai travaillé dur sur ce code mais maintenant le client veut que l'événement (signifiant que les liens d'image montrent s'il y a un fichier avec le flv/mp3) se produira au chargement de la page.
Je ne veux pas tout écrire à nouveau et je pense qu'il devrait y avoir un moyen de changer l'événement click.
Le problème est que je ne suis pas très efficace avec jQuery :)
Can aide de jQuery sur ce champion?
Voici le code (je ne suis pas fier de ce code, mais il fait le travail):
<script type="text/javascript">
jQuery(function() {
jQuery(".SearchResultsGV > tbody > tr:not(:has(table, th))")
.css("cursor", "pointer")
.one("click", function(e) {
var jQuerycell = jQuery(e.target).closest("td");
var jQuerycurrentCellText = jQuerycell.text();
var jQueryleftCellText = jQuerycell.prev().text();
var jQueryrightCellText = jQuerycell.next().text();
var jQuerycolIndex = jQuerycell.parent().children().index(jQuerycell);
var jQuerycolName = jQuerycell.closest("table")
.find('th:eq(' + jQuerycolIndex + ')').text();
//Check media 1
jQuery.ajax({
url: 'http://dtora.org.il/Portals/0/Shiurim/' + jQuerycell.parent().children().first().text().replace('.doc', '.mp3'),
type: 'HEAD',
error:
function() {
//do something depressing
jQuery(jQuerycell.parent().children().last()).append("<img src=http://dtora.org.il/Portals/0/images/noFiles.png />");
},
success:
function() {
//do something cheerful :)
var jQueryMedia1Name = ('<a href=http://dtora.org.il/Portals/0/Shiurim/' + jQuerycell.parent().children().first().text().replace('.doc', '.mp3') + '><img class="soundFile" src=http://dtora.org.il/Portals/0/images/Music.png /></a>')
jQuery(jQuerycell.parent().children().last()).append(jQueryMedia1Name);
}
});
//Check media 2
jQuery.ajax({
url: 'http://dtora.org.il/Portals/0/Shiurim/' + jQuerycell.parent().children().first().text().replace('.doc', '.flv'),
type: 'HEAD',
error:
function() {
//do something depressing
jQuery(jQuerycell.parent().children().last()).append("<img src=http://dtora.org.il/Portals/0/images/noFiles.png />");
},
success:
function() {
//do something cheerful :)
var jQueryMedia2Name = ('<a href=http://dtora.org.il/Portals/0/Shiurim/' + jQuerycell.parent().children().first().text().replace('.doc', '.flv') + '><img class="videoFile" src=http://dtora.org.il/Portals/0/images/Video.png /></a>')
jQuery(jQuerycell.parent().children().last()).append(jQueryMedia2Name);
}
});
});
});
</script>
Amireh, merci beaucoup pour cette réponse détaillée. Je vais essayer et je vous ferai savoir comment cela fonctionne. – Yehuda
Merci, Amireh. L'utilisation des identifiants est un problème ici à cause du gridview. Le reste de votre code semble résoudre le problème de charge, mais je ne suis pas encore sûr. – Yehuda