0

我在本地看到此错误。当我附加一些特定的 DOM 时会发生这种情况:

TypeError: string is undefined  

return string.replace( rmsPrefix, "ms-" ).replace( rdashAlpha, fcamelCase );

jquery.js (line 622)

它没有出现在生产中,但它不时在我本地发生。我调试了它,但找不到任何东西。我使用 jquery 1.8.2。

在这里发布它,希望其他人已经遇到过这个问题。(我不期待解决方案)

这是导致它的代码:

flash = function(type, message, secondaryMessage) {
    var flash_location = $('.flash-location');
    var secondary = '';
    type = type || 'error';
    message = message || (type == 'success' ? 'Success' : 'Error');
    if(secondaryMessage){
        secondary = '<p class="secondary">'+secondaryMessage+'</p>';
    }
    var top = 5;
    flash_location.append($('<div class="flash"><div class="flash-content ' + type + '" style="top:'+top+'px;"><table><tr><td class="flash-icon"></td><td><p class="primary">' + message + '</p>'+secondary+'</td></tr></table></div></div>').fadeIn('normal'));
};
4

1 回答 1

0

如果您append使用 DOM 构建元素,问题是否仍然存在?

flash = function(type, message, secondaryMessage) {
    var flash_location = $('.flash-location'),
        top = 5,
        table = $('<table />'),
        tr = $('<tr />'),
        td = $('<td />'),
        p = $('<p />'),
        div = $('<div />'),
        td1 = td.clone().addClass('flash-icon'),
        td2 = td.clone().append(p.clone().addClass('primary')),
        flashContent = div.clone().addClass('flash-content').addClass(type).css('top', top + 'px'),
        flash = div.clone().addClass('flash');
    type = type || 'error';
    message = message || (type == 'success' ? 'Success' : 'Error');
    if(secondaryMessage){
        td2.append(p.clone().addClass('secondary').text(secondaryMessage));
    }
    tr.append(td1).append(td2);
    table.append(tr);
    flashContent.append(table);
    flash.append(flashContent);
    flash_location.append(flash).fadeIn('normal'));
};
于 2012-11-19T13:34:36.480 回答