我正在使用SignalR更新基於實時源更改顏色的跨度。連接工作正常,但我在跨度上的css類的更新部分有一些麻煩。使用SignalR和jquery更改跨度上的css
問題是,當我需要更新一個元素上的幾個類時,類名只是附加的而不會改變。 這裏是我的標記:
<span id="[email protected]" class="badge sl-badge-normal connection-false">
<i id="[email protected]" class="fa fa-rss"></i>
<span id="[email protected]">
@Model.ActivityMessage
</span>
</span>
在外跨度類sl-badge-normal
和connection-false
是需要改變的類。 sl-badge-normal
可以是以下值:
- SL-徽章OK
- SL-徽章預警
- SL-徽章錯誤
- SL-徽章正常
和connection-false只能在連接和連接之間切換。
你問之前,是的,這兩個需要被因爲它是完全不同的信息分爲兩個不同的jQuery的更新:) 我的jQuery看起來像這樣的連接部分:
messageHub.client.notifyAlive = function (aliveMessage, unitId) {
if (aliveMessage) {
$('#activity-' + unitId).addClass("connection-true");
} else {
$('#activity-' + unitId).addClass("connection-false");
}
};
而爲徽章的一部分,它看起來是這樣的:
messageHub.client.notifyActivityStatus = function(statusColor, statusText, unitId) {
$('#activity-' + unitId).addClass("badge " + statusColor);
$('#activityMessage-' + unitId).text(statusText);
};
我的問題在這裏是說下面的語句將從此進入:
<span id="[email protected]" class="badge sl-badge-normal connection-false">
這樣:
<span id="[email protected]" class="badge sl-badge-normal connection-false sl-badge-error connection-true">
任何人都可以請提出一個解決方案?每次有更新時發佈整個類字符串necrseary,還是我可以簡單地交換單個類名?
不要使用互斥的CSS類。如果'connection-false'是基本狀態,那麼完全刪除該類。添加'connection-true'來表示從基本狀態改變。刪除'connection-true'指示返回到基本狀態。 – Tomalak