Google MDL - 在 jquery 中创建卡片仅显示文本 - 无背景或边框
Google MDL - Creating card in jquery shows only text - no background or border
我有以下代码可以动态创建 MDL 卡
var resultsHolder = $('#resultsHolder');
var gridHolder = $('<div>',{ 'class' : 'mdl-grid' });
var card = $('<div>',{ 'class' : 'mdl-card.mdl-shadow--2dp data-display' });
var title = $('<div>',{'class' : 'mdl-card__title'});
var h4 = $('<h4>');
var supportingText = $('<div>',{'class' : 'mdl-card__supporting-text'});
var supportingPara = $('<div>',{'class' : 'projectDesc'});
h4.append($('#projectName').val());
title.append(h4);
supportingPara.append($('#projectDesc').val());
supportingText.append(supportingPara);
card.css('width','100%');
card.append(title);
card.append(supportingText);
gridHolder.append(card);
resultsHolder.prepend(gridHolder);
componentHandler.upgradeElement(resultsHolder);
同时出现新卡的内容。 None 出现边框或背景。
我看过以下link
但使用以下任何一种;
- componentHandler.upgradeDom();
- componentHandler.upgradeElement();
通过持卡人的class - $('#resultsHolder')
None 似乎有所不同。
那么怎样才能让我的全卡出现呢
尝试$('#resultsHolder')[0]
使用这些函数。
最终不是使用 JQuery 而是使用原始 JavaScript 来创建元素。因此,创建卡片、标题、支持文本和操作的修订版如下;
var resultsHolder = document.getElementById('resultsHolder');
var gridHolder = document.createElement('div');
var card = document.createElement('div');
var title = document.createElement('div');
var h4 = document.createElement('h4');
var supportingText = document.createElement('div');
var supportingPara = document.createElement('p');
var cardActions = document.createElement('div');
var detailButton = document.createElement('button');
try {
// assign classes
gridHolder.className = 'mdl-grid';
card.className = "mdl-card mdl-shadow--2dp data-display";
title.className = 'mdl-card__title';
supportingText.className = 'mdl-card__supporting-text';
supportingPara.className = 'projectDesc';
cardActions.className = 'mdl-card__actions mdl-card--border mdl-typography--text-right';
detailButton.className = 'mdl-button mdl-js-button mdl-js-ripple-effect';
// add special styles
card.style.width = '100%';
// card.style.opacity = '0';
// add text
h4.innerHTML = $('#projectName').val();
supportingPara.innerHTML = $('#projectDesc').val();
detailButton.innerHTML = 'Details';
// build the title
title.appendChild(h4);
// build the supporting text
supportingText.appendChild(supportingPara);
// build the actions
cardActions.appendChild(detailButton);
// build the card
card.appendChild(title);
card.appendChild(supportingText);
card.appendChild(cardActions);
gridHolder.appendChild(card);
resultsHolder.insertBefore(gridHolder,resultsHolder.firstChild);
// now upgrade components so they are handled correctly by mdl
componentHandler.upgradeDom(gridHolder);
}
catch(e) {
alert( e );
}
我有以下代码可以动态创建 MDL 卡
var resultsHolder = $('#resultsHolder');
var gridHolder = $('<div>',{ 'class' : 'mdl-grid' });
var card = $('<div>',{ 'class' : 'mdl-card.mdl-shadow--2dp data-display' });
var title = $('<div>',{'class' : 'mdl-card__title'});
var h4 = $('<h4>');
var supportingText = $('<div>',{'class' : 'mdl-card__supporting-text'});
var supportingPara = $('<div>',{'class' : 'projectDesc'});
h4.append($('#projectName').val());
title.append(h4);
supportingPara.append($('#projectDesc').val());
supportingText.append(supportingPara);
card.css('width','100%');
card.append(title);
card.append(supportingText);
gridHolder.append(card);
resultsHolder.prepend(gridHolder);
componentHandler.upgradeElement(resultsHolder);
同时出现新卡的内容。 None 出现边框或背景。
我看过以下link
但使用以下任何一种;
- componentHandler.upgradeDom();
- componentHandler.upgradeElement();
通过持卡人的class - $('#resultsHolder')
None 似乎有所不同。
那么怎样才能让我的全卡出现呢
尝试$('#resultsHolder')[0]
使用这些函数。
最终不是使用 JQuery 而是使用原始 JavaScript 来创建元素。因此,创建卡片、标题、支持文本和操作的修订版如下;
var resultsHolder = document.getElementById('resultsHolder');
var gridHolder = document.createElement('div');
var card = document.createElement('div');
var title = document.createElement('div');
var h4 = document.createElement('h4');
var supportingText = document.createElement('div');
var supportingPara = document.createElement('p');
var cardActions = document.createElement('div');
var detailButton = document.createElement('button');
try {
// assign classes
gridHolder.className = 'mdl-grid';
card.className = "mdl-card mdl-shadow--2dp data-display";
title.className = 'mdl-card__title';
supportingText.className = 'mdl-card__supporting-text';
supportingPara.className = 'projectDesc';
cardActions.className = 'mdl-card__actions mdl-card--border mdl-typography--text-right';
detailButton.className = 'mdl-button mdl-js-button mdl-js-ripple-effect';
// add special styles
card.style.width = '100%';
// card.style.opacity = '0';
// add text
h4.innerHTML = $('#projectName').val();
supportingPara.innerHTML = $('#projectDesc').val();
detailButton.innerHTML = 'Details';
// build the title
title.appendChild(h4);
// build the supporting text
supportingText.appendChild(supportingPara);
// build the actions
cardActions.appendChild(detailButton);
// build the card
card.appendChild(title);
card.appendChild(supportingText);
card.appendChild(cardActions);
gridHolder.appendChild(card);
resultsHolder.insertBefore(gridHolder,resultsHolder.firstChild);
// now upgrade components so they are handled correctly by mdl
componentHandler.upgradeDom(gridHolder);
}
catch(e) {
alert( e );
}