使用jquery只保存一次自定义数据到dom元素
Saving custom data to dom elements using jquery only once
我正在使用jQuery通过读取查询字符串参数创建动态控件。这些控件可以被拖拽以整洁的方式放置,在拖放事件之后,我将通过隐藏字段更新控件的位置和状态。这只是我的实现现在更新数据在每次下降,这不是很好。我也通过事件这样做过,但效果不佳
当前实现
/*Create controls when only query string exists*/
if (config.params) {
//parse the query string json as a object
//ex:{type:"textbox",x:100,y:200,label:Name}
var params = $.parseJSON(config.params);
//for each control in json add it to document body
$(params).each(function (idx, obj) {
var id = new Date();//for generating dynamic id
id = id.getTime();
$("<span>").addClass(obj.css).load(function (ev) {
var a = this;
$(a).data("keys", {
key: $("label", a).text()**certainly label wont be found**,
value: $("input[name]:hidden", a)
});
}).
easydrag().ondrop(function (e, el) {
//easydrag drag drop plugin
var a = $(el),
b = a.data("keys"),
key = b.key,
value = b.value;
value.val(key + "$" + e.pageX + "$" + e.pageY);
}).
css({
position: "absolute",
top: obj.y,
left: obj.x
}).
append($("<label>", {
"for": id
}).
html(obj.label).
append(config.ELEMENTS(obj.type).attr("id", id))).
append($("<input>", {
"type": "hidden",
"name": "CONTROL$POSITION",
"id": "control_position_" + idx
})).
appendTo("form");
});
}
问题- 如你所见,我在加载时将数据附加到span元素上。但因为它是加载事件,我不会有内部的
- 也给我关于如何在回发后重新绘制控件的想法?
label
和hidden fields
。我只需要设置元素span
上的数据一次,因为在drop event
期间,我将访问标签和隐藏字段以更新控件的当前位置。我不想在label
和hidden field
的每个滴上query the dom
,这是我的目的。删除load
,并临时存储对该元素的引用。在元素完全创建完成后执行代码:
var span = $("<span>");
span.addClass(obj.css).
easydrag(). //et cetera
....
appendTo("form");
//After the element has finished:
$(span).data("keys", {
key: $("label", span).text(),
value: $("input[name]:hidden", span)
});
相关文章:
- Meteor和S3:如何通过一次上传/编辑定义三个不同的图像
- PassportJS/忘记密码:req.user只定义一次
- 从GWT中的HighCharts库(以及一般的Javascript)自定义Stockchart范围选择器按钮
- 有没有一种方法可以在three.js中自定义纹理之间的转换
- OpenLayers-自定义图像在一层上的马赛克
- 在同一页面上多次使用的自定义指令 (AngularJS) 中的验证
- Chrome只打开一次自定义URI
- Lightswitch HTML 自定义控件仅显示一次
- 为什么将 ng-select 替换为自定义指令会导致$http请求不会每隔一段时间发送一次
- 优化代码以只定义一次变量,代码只有在变量处于变更函数中时才有效,对于变更之外的代码,我重新定义
- 自定义倒计时脚本,每8小时重新启动一次
- Wordpress高级自定义字段,谷歌地图,一次只打开一个信息窗口
- Jquery/Javascript在CSS改变后只运行一次自定义函数
- 自定义绑定只调用一次
- 使用jquery只保存一次自定义数据到dom元素
- 我如何重置多个下拉下拉在jquery移动与自定义类一次
- Jquery自定义日期验证器只工作一次
- 滚动事件导致自定义事件触发两次(应该是一次)
- 为后端和前端视图(PHP,Backbone)定义一次HTML
- 在尝试将自定义Javascript集成到ASP中遇到了一次又一次的麻烦.. NET webforms应用程序