リスト項目が自分のmvcページの他のリストに移動されたときに、異なる属性を取得して設定したいだけです...これまでのところアクセスできません。問題はjavascriptで、onchangeイベントをうまくいきます。私は簡潔にするためにcshtmlの "利用可能なリスト"を投稿しませんでした。変更イベントでソート可能な剣道で属性を取得して設定する
SpecialNeedInActiveListの変更を:チューブnewIndexがあたりクスリ:-1 oldIndex:5アクション: SpecialNeedActiveListの変更を削除:チューブnewIndexがあたりクスリ:3 oldIndex:-1アクション:これは下のようにconsole.logを読み込むものです受信
これは長すぎます。
HTML:
<div class="col-md-6" id="SpecialNeedContainerLL">
<ul id="SpecialNeedActiveList" class="col-md-6">
@if (Model.SelectedSpecialNeeds.Any())
{
foreach (var y in Model.SelectedSpecialNeeds)
{
<li class="list-item" selected-personspecialneed="@y.PersonSpecialNeedId" selected-need-type="@y.SpecialNeedTypeId"> @y.SpecialNeedDescription </li>
}
}
</ul>
</div>
@(Html.Kendo().Sortable()
.For("#SpecialNeedActiveList")
.ConnectWith("#SpecialNeedInActiveList")
.PlaceholderHandler("placeholder")
.Events(events => events.Change("onChange"))
)
Javascriptを:
function onChange(e) {
var id = e.sender.element.attr("id"),
text = e.item.text(),
newIndex = e.newIndex,
oldIndex = e.oldIndex;
if (id == 'SpecialNeedActiveList' && newIndex > -1) {
//add item to selected list
//remove item from availables list
/*NONE of the following works...*/
//var oldPersonSpecialNeedId = e.sender.element.getAttribute('available-personspecialneed');
//var oldSpecialNeedTypeId = e.sender.element.getAttribute('available-need-type');
//e.sender.element.removeAttribute('available-personspecialneed');
//e.sender.element.removeAttribute('available-need-type');
//e.sender.element.setAttribute('selected-personspecialneed', oldPersonSpecialNeedId);
//e.sender.element.setAttribute('selected-need-type', oldSpecialNeedTypeId);
}
console.log(id + " change: " + text + " newIndex: " + newIndex + " oldIndex: " + oldIndex + " action: " + e.action);
}
$ thisを使用できますか? – tshoemake
できます。変更ソート可能イベントのコンテキストでは、「this」はソート可能なものへの参照です。したがって、e.itemとthis.draggedElementは両方とも、ドラッグされたDOM要素を参照します。ドラッグされた要素への参照を取得する方法は、取得した場合とまったく同じです。私はe.itemが好きです。なぜならthis.draggedElementは概念的には*私の間接的な...より個人的な好みであるのに対し、ここには直接「あなたがドラッグされたアイテムです」というイベントです。 –
だからどこでe.item、e.textを調べることができますか...私は自分の使い捨てのツールが何であるか知りたいと思います...あなたの助けをありがとうbtw – tshoemake