这是Post Counter Widget的工作版本,当标识符是文本字符串时,它的工作方式很好,由其标记如h1标识
HTML
<body>
<!-- Post Views Counter by MBT-->
<h1>Blog Title Twelve</h1>
<div id='views-container'>
<div class='mbtloading viewscount' id='postviews'></div>
<div class='views-text'>visitors read this post</div>
</div>
</body>
JS
window.setTimeout(function() {
document.body.className = document.body.className.replace("loading", "");
}, 10);
$.each($("h1"), function(i, e) {
var elem = $(e).parent().find("#postviews").addClass("loading");
var blogStats = new Firebase("https://crackling-fire-6727.firebaseio.com/pages/id/" + $(e).text());
blogStats.once("value", function(snapshot) {
var data = snapshot.val();
var isnew = false;
if(data == null) {
data= {};
data.value = 0;
data.url = window.location.href;
data.id = $(e).text();
isnew = true;
}
console.log(data)
elem.removeClass("loading").text(data.value);
data.value++;
blogStats.set(data);
});
});
但是,当标识符是名称标签[name]查找标签名称时,addClass,removeClass函数会失败,尽管例程访问数据库并更新它(小部件的剩余功能)
示例http://lastingrose.blogspot.co.uk/2014/05/why-was-2014-indian-parliament-election.html
当像name =这样的数据标识符是一个硬编码到html中的字符串,如&#34;更多&#34; removeClass()的工作原理。当您从菜单中插入一个中断时,这将在编辑器中完成。
如果从代码中动态创建名称= expr:name = MBT代码适用于创建和更新Firebase数据库,但removeClass函数不起作用。
任何人都知道如何解决这个问题?