【发布时间】:2014-05-28 12:43:45
【问题描述】:
我正在使用jsPlumb。
我当前的功能允许我创建一个.project div,然后可以在其中包含.task div。 .project div 有 3 个可点击的按钮,它们都使用 jQuery 工作,.project 内的 .tasks 有一个也可以工作的关闭按钮。
我们可以在这里看到:http://jsfiddle.net/9yej6/3/
(单击添加项目按钮,然后单击绿色项目并尝试单击某个任务附近的 X - 应该会弹出一个警报)
但是,每当我尝试使用 jsPlumb 将 .tasks 设置为 makeTarget/makeSource 时,它都会超过(可能不是最好的词)jQuery 完成的任何其他事件。那就是当我点击 .task 的 X 图标时,它的行为就像我点击 .task 本身并尝试创建 jsPlumb 的绑定一样。
可以在这里看到:http://jsfiddle.net/9yej6/4/
因此以下行不再有效(注意我使用的是on() 函数,因为.project/.task div 是动态创建的):
$("#container").on('click','.task .close',function(e) { alert('a task`s add was clicked'); });
最初addTask() 函数是(有效,但您不能添加 jsPlumb 键):
function addTask(parentId, index) { var newState = $('<div>').attr('id', 'state' + index).addClass('task'); var close = $('<div>').addClass('close'); newState.append(close); var title = $('<div>').addClass('title').text('task ' + index);; newState.append(title); $(parentId).append(newState); }
但是当我向它添加 makeTarget()/makeSource() 调用时,它似乎超过了任何其他 jQuery 事件处理。我的新addTask() 函数变为:
function addTask(parentId, index) { var newState = $('<div>').attr('id', 'state' + index).addClass('task'); var close = $('<div>').addClass('close'); newState.append(close); var title = $('<div>').addClass('title').text('task ' + index);; newState.append(title); $(parentId).append(newState); jsPlumb.makeTarget(newState, { anchor: 'Continuous' }); jsPlumb.makeSource(newState, { anchor: 'Continuous' }); }
【问题讨论】:
标签: javascript jquery jsplumb