我有一个向表单添加可拖动元素的脚本。
这真的很好,直到我添加另一个 - 加上它的脚本 - 然后前一个就停止响应。这两个脚本都存在于 DOM 中。
为什么第一个停了?
我努力了
$.noConflict()
和
jQuery.noConflict()
但这只是让它完全停止工作。
我添加可拖动元素的脚本如下所示。
function createTextBox() {
//Random name for out text box. users dont see this.
var textBoxName = 'tb_' + Math.floor(Math.random() * 10000)
var html_script;
html_script="<div id='draggable" + textBoxName + "' style='position: absolute; top: 100px; left: 100px;'>" +
"<img src='../../Images/next.png' style='cursor: pointer;'/><img style='cursor: pointer;' src='../../Images/delete.png' onclick=\"RemoveTextBox('" + textBoxName + "')\"/>" +
"<a href='#' class='data_field ui-draggable ui-resizable' id='draggable" + textBoxName + "'></a>" +
"<textarea rows='5' cols='80' title='Text Box' data-tooltip='Tool'" +
" data-width='100'" +
" data-height='20'" +
" data-topx='10'" +
" data-topy='10" +
" data-multiline='true'" +
" data-hidden='false'" +
" data-type='textBox'" +
" name='" + textBoxName + "'" +
" id='" + textBoxName + "'" +
" class='data_field ui-widget-content ui-corner-all'" +
" style='background-color: transparent; width: 100px; height: 20px;'>Text Box</textarea> " +
"</div>"
document.getElementById('text_boxes').innerHTML += html_script;
var java_script = "$(function () {" +
" var sh = 0;" +
" var sw = 0;" +
" $('#draggable" + textBoxName + "').draggable({" +
" drag: function (event, ui) {" +
" dragposition = ui.position;" +
" $('#" + textBoxName + "').attr('data-topx', dragposition.left);" +
" $('#" + textBoxName + "').attr('data-topy', dragposition.top);" +
" }" +
" });" +
" $('#" + textBoxName + "').resizable({" +
" stop: function (event, ui) {" +
" s = ui.size;" +
" sh = s.height;" +
" sw = s.width;" +
" $('#" + textBoxName + "').attr('data-width', s.width);" +
" $('#" + textBoxName + "').attr('data-height', s.height);" +
" }" +
" });" +
"});"
var script = document.createElement('script');
script.type = 'text/javascript';
script.text = java_script;
document.getElementById("text_boxes").appendChild(script);
};
如果有人认为它的代码不好但只使用了几个月,我真的很抱歉!
因此,每次用户单击图标时,我都会尝试执行此操作,从而生成一个可拖动的框。然后,如果用户产生另一个盒子,它们都保持可移动。
我确定有更好的方法可以不用为每个盒子生成一个脚本,但我还不知道!
谢谢
谢谢