我正在使用jQuery中的selectable()
,它的工作方式与我想要的一样。
但我想进入下一步,我希望它在主聊天中选择消息。
因此,所选昵称的文本也会在主聊天中突出显示。
JsFiddle http://jsfiddle.net/56SkH/13/
更新
我想要做的是,当从用户中选择昵称时,自动从用户中选择频道消息。
答案 0 :(得分:0)
您可以通过添加课程ui-selected
并使用selected
事件强制对元素进行选择:
$(function () {
$('#users').selectable({
selected: function (event, ui) {
$(".channelmessage span.nickname.ui-selected").removeClass("ui-selected");
$(".channelmessage span.nickname:contains('" + ui.selected.id + "')").addClass("ui-selected");
}
});
});
在示例中,我使用span内容作为包含selctor,我已经修改了一些HTML标记,如:
<p class="channelmessage"> <span class="nickname">Nickname2</span><span>:</span>
<span class="message">Message</span>
</p>
答案 1 :(得分:0)
Try this - 点击每个名称也会使用&#39;停止&#39; selectable()的属性。
$(function () {
$("#users").selectable({
stop: function () {
$("#users li").each(function (key) {
$("#Nickname" +(key+1)+ "_message").css({"background":"white","color":"black"});
});
$(".ui-selected", this).each(function (key) {
var index = $( "#users li" ).index( this );
$("#Nickname" +(index + 1)+ "_message").css({"background":"#F39814","color":"white"});
});
}
});
});
答案 2 :(得分:0)
为每个聊天消息添加一个虚拟类很容易,选择器比搜索名称字符串更有效。
$(function() {
$( '#users').selectable({
filter: "li",
selecting: function( event, ui ) {
$(".ui-selected").removeClass("ui-selected");
$('.channelmessage span.message.' + ui.selecting.id).addClass("ui-selected");
}
});
});
这里有一个可用的JSFiddle示例:
答案 3 :(得分:0)
$(function() {
$('#users').selectable({
selected: function(event, ui) {
var user = ui.selected.id.toLowerCase();
$('.channelmessage.'+user).addClass('ui-selected');
},
unselected: function(event, ui) {
$('.channelmessage').removeClass('ui-selected');
},
});
});