我正在构建此页面: http://codediaries.club/team.php?id=126
我对jQuery draggable函数有一个特定的问题。
正如您所看到的,我已经为某些元素使用了jQuery和bootstrap。我的问题是,在窗口加载后,我尝试运行一个jQuery代码,使第三个选项卡中的一些div元素("形成")在某个区域内可拖动。这是我的代码:
<script>
$(window).load(function() {
$(".ui-draggable").each(function(i, obj) {
var self = this;
var stringID = self.id.replace("man", "");
var formationID = self.id.replace("formation", "map");
formationID = formationID.replace("man", "formation");
formationID = formationID.substring(0, 14);
var coordXString = "coordX"+stringID;
var coordYString = "coordY"+stringID;
var positionRoleString = "positionRole"+stringID;
this.start_x = $("[name='"+coordXString+"']").val();
this.start_y = $("[name='"+coordYString+"']").val();
this.start_role = $("[name='"+positionRoleString+"']").val();
obj.draggable({
containment: "."+formationID,
}).css("position", "absolute");
});
});
控制台在行中显示错误&#34; obj.draggable&#34;,说&#34; draggable不是函数&#34;。
但是,我已经测试了如果我将这行代码放在文档的开头,
$( function() {
$(".draggable").draggable();
} );
它没有显示这个错误,所以我想,有些东西会在特定时间后加载,并且会破坏jQuery函数。
感谢任何观看并希望提前帮助的人。
答案 0 :(得分:1)
看起来循环中的值(obj
)是一个HTML元素而不是jQuery元素,并且必须在jQuery元素上调用draggable。尝试使用jQuery包装器围绕obj
。
所以改变这个:
obj.draggable({
containment: "."+formationID,
}).css("position", "absolute");
要:
$(obj).draggable({
containment: "."+formationID,
}).css("position", "absolute");