我使用jquery draggable和jquery droppable,在draggable函数中我使用helper clone,当我删除拖动的元素时它应该删除克隆并显示另一个div,在droppable的地方我有一个内部的div是不可见的它应该是可见的,这是我的代码
$('#external-events .fc-event').each(function() {
// store data so the calendar knows to render an event upon drop
// make the event draggable using jQuery UI
$(this).draggable({
helper:'clone',
zIndex: 999999,
containment: 'window',
appendTo:'body',
scroll: false,
revert: true, // will cause the event to go back to its
revertDuration: 0, // original position after the drag
// start: function(){
// $(this).fadeOut();
//
// },
// stop: function(){
// $(this).fadeIn();
// }
});
});
这是我的可放置功能
$(to).droppable({
drop: function ( event, ui ){
$("ui.draggable").clone().hide();
var avatar = '';
var user = ui.helper[0].id;
console.log("user", user);
var fullname = $('#'+user+' .fullName').text();
var hiddenInput = $('#'+user+' .userId').val();
console.log("ID: ", hiddenInput);
console.log(fullname);
$('#uname_here').text(fullname);
var userId = '#' + ui.helper[0].id + ' .userId';
$('.whenDropOwnerHideThis').hide();
$("div#dropedUser").show();
$('#dropUserForHeadOfProjectInput').val(hiddenInput);
$("#dropUserForHeadOfProject").removeClass('error_empty');
$("#drop_head_project").removeClass('error_empty');
}
});
像这样它不起作用,它显示错误
Uncaught Error: Syntax error, unrecognized expression: # .fullName
答案 0 :(得分:1)
我认为你希望id
获取元素,id
就像user.fullname
,你在下面的代码中犯了错误:
var fullname = $('#'+user+' .fullName').text();
要使用任何元字符(例如!"#$%&'()*+,./:;<=>?@[\]^``{|}~
)作为名称的文字部分,必须使用两个反斜杠\\
对其进行转义
。例如,具有id="foo.bar"
的元素可以使用选择器$("#foo\\.bar")
。 (More information)
所以你需要改变你的代码:
var fullname = $('#'+user+'\\.fullName').text();
答案 1 :(得分:1)
您的HTML中必须有唯一的id
,否则您可以使用data-*
属性来选择任何元素。
同样来自您的代码,如果您的元素id
具有类fullname
,请尝试从选择器中删除空格,
var fullname = $('#'+user+'.fullName').text();
// --------^^ remove the space from here
对班级userId
执行相同操作,
var hiddenInput = $('#'+user+'.userId').val();
根据您的错误消息,我认为您没有从声明中获得user-id
,
var user = ui.helper[0].id;// make sure it should not blank &
// an element having this id exists in DOM
答案 2 :(得分:0)
问题是我无法正确获取ID,所以这就是我现在得到它并且工作正常,
var user = ui.helper.context.id;