2010-01-19 5 views
0

Quelqu'un peut-il me dire ce qui ne va pas avec cette fonction? Tout fonctionne comme il se doit jusqu'à ce que j'essaie de changer l'attribut title, dernière ligne. Il ne change pas et a la valeur d'origine. Im en utilisant le titre attr comme une notification sur la souris surJe ne peux pas changer l'attribut du titre

P.S. Javascript/jQuery n'est pas mon point fort im un développeur C# alors s'il vous plaît soyez gentil.

function doAlerts(serverDateTime) 
{ 
$('.alertText').each(function() 
{ 
    var getCell = $(this).find("td").eq(0).html() 

    var respCount = $(this).find(".messageCount").val(); 
    var callerId = $(this).find(".messageCallerID").val(); 
    var getTitleText = $(this).attr('title'); 

    //get date and title from row off page 
    var createDate = $(this).find('.createdDate').html(); 
    var titleText = $(this).attr('title').replace('Expected SLA : ', '').replace('Expected Response : ', ''); 
    var title = "Ticket No : " + getCell + "<br>" + getTitleText.replace(' - ','<br>') + "<br>"; 

    var slaResult = warning(titleText, serverDateTime, 20, "SLA"); 
    var expResult = warning(titleText, serverDateTime, 60, "Exp"); 

    if(slaResult) 
    { 
     $(this).addClass('warning'); 
     $(".warning").css("background-color", "#FFdddd"); 
     title = title + "<br>There is less than 20mins before expected 4 hour SLA.<br>"; 
    } 
    if(expResult) 
    { 
     $(this).addClass('warning'); 
     $(".warning").css("background-color", "#FFdddd"); 
     title = title + "<br>There is less than 60mins before expected 24 hour response.<br>"; 
    } 
    if(respCount) 
    { 
     if(respCount > 5) 
     { 
      $(this).addClass('warning'); 
      $(".warning").css("background-color", "#FFdddd"); 
      title = title + "<br>There has been " + respCount + "messages. A phone call is required to the client<br>"; 
     } 
    } 
    $(this).attr("title", title); 
}); 

}

+0

Quel genre d'éléments ont la 'alertText' classe? Sont-ils '

'? Comment vérifiez-vous que l'attribut 'title' est défini? Habituellement, vous voudrez utiliser cela dans les ancres ('') plutôt que '
' où ils ne veulent rien dire pour le navigateur. –

+0

Si vous ajoutez une déclaration (comme un test seulement) title = "texte de test"; $ (this) .attr ("titre", titre); est-ce que cela fonctionne? et montre le "texte de test"? –

Répondre

1

Vous n'êtes pas autorisé à utiliser html (<br>) texte dans un attribut. Seul le texte brut est autorisé.

+0

Oui, je vais résoudre ce problème, mais cela ne pose pas le problème – Dooie

+1

@Dooie changez-le d'abord, puis confirmez que ce n'est pas votre problème. –

+0

J'ai changé les pauses et ce n'est pas le problème – Dooie

0

Si vous souhaitez des sauts de ligne dans un attribut title, vous devez utiliser les caractères ASCII CR/LF plutôt que les éléments <br />.

0

Vous pouvez imiter la fonction PHP htmlentities() avec un peu de javascript:

$(this).attr('title', htmlentities(title)); 

function htmlentities (string, quote_style) { 
    // http://kevin.vanzonneveld.net 
    // + original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net) 
    // + revised by: Kevin van Zonneveld (http://kevin.vanzonneveld.net) 
    // + improved by: nobbler 
    // + tweaked by: Jack 
    // + bugfixed by: Onno Marsman 
    // + revised by: Kevin van Zonneveld (http://kevin.vanzonneveld.net) 
    // + bugfixed by: Brett Zamir (http://brett-zamir.me) 
    // +  input by: Ratheous 
    // - depends on: get_html_translation_table 
    // *  example 1: htmlentities('Kevin & van Zonneveld'); 
    // *  returns 1: 'Kevin &amp; van Zonneveld' 
    // *  example 2: htmlentities("foo'bar","ENT_QUOTES"); 
    // *  returns 2: 'foo&#039;bar' 

    var hash_map = {}, symbol = '', tmp_str = '', entity = ''; 
    tmp_str = string.toString(); 

    if (false === (hash_map = this.get_html_translation_table('HTML_ENTITIES', quote_style))) { 
     return false; 
    } 
    hash_map["'"] = '&#039;'; 
    for (symbol in hash_map) { 
     entity = hash_map[symbol]; 
     tmp_str = tmp_str.split(symbol).join(entity); 
    } 

    return tmp_str; 
} 

SOURCE: http://github.com/kvz/phpjs/raw/master/functions/strings/htmlentities.js

Questions connexes