如何在数组中保存jQuery对象以供以后使用?
How can I save a jQuery object in my array for a later use?
我有一些用户用鼠标挑选的图标。
我有这一系列的图标,我可以选择和设置它们的边框。我将选择的图标数量限制为5个。第一个选中的会变成一个黄色的边框。接下来的4将是黑色边框。
文档。ready, I do:
$ (' img.selectable) .click(函数(){image_click(这个);});
对于CSS:
.selectable {
border: 3px solid #ebe6b3;
float:left;
margin:1px;
}
对于HTML:
<img class="selectable" src="img/first_icon.png">
我有这个功能:
function image_click(e)
{
if($(e).data("clicked")=="yes")
{
images_selected--;
$(e).data("clicked","no").css('border','3px solid ' + NEUTRAL_COLOR);
if(images_selected==1)
{
$('img.selectable').not( e ).filter(function() {
return $( this ).data("clicked")=="yes";
}).css('border','3px solid ' + YELLOW_COLOR);
}
}
else
{
if (images_selected<5)
{
images_selected++;
if(images_selected==1)
{
$(e).data("clicked","yes").css('border','3px solid ' YELLOW_COLOR);
}
else
{
$(e).data("clicked","yes").css('border','3px solid ' + BLACK_COLOR);
}
}
}
};
必须有一个第一个图标,它将一直是黄色的。我想用顺序数组来做,它存储对象的顺序。问题是,我似乎无法从数组中调用对象并仍然保留它的css函数。
我在想:
var x=[];
inside image_click(e){..
在某个点存储对象:
$(e).data("order",clicked_img);
x[clicked_img]=e;
当我弹出它时:
alert(x[clicked_img].data("order"));
...}
但是…看来我再也无法访问数据了。就像当对象离开jQuery领域时,它就失去了公民权利。我不知道如何访问它的数据变量
请帮助!谢谢!
保存的是DOM元素,而不是jQuery对象。应该是
x[clicked_img]=$(e);
不x[clicked_img]=e;
就像当对象离开jQuery领域时,它已经失去了它的民事权利。
简单的解决方案:把它放回jQuery领域。您有几个选项:
x[clicked_img] = $(e);
// ...
alert(x[clicked_img].data("order"));
或:
x[clicked_img] = e;
// ...
alert($(x[clicked_img]).data("order"));
或:
x[clicked_img] = e; // assuming e is the DOM element, not the event
// ...
alert(x[clicked_img].dataset.order);
现在不建议使用后者,因为我不确定跨浏览器的含义,但无论如何,这是在"常规"JavaScript中实现的方法。
我建议第一种方法,在这种情况下,你也应该分配$(e)
到一个变量在image_click
的开始,所以它不会重建jQuery对象每次
相关文章:
- 如何删除对象数组中的对象:jquery
- 为一个声音元素数组创建一个音频对象jquery,javascript
- 在原型对象 jquery 上将一个按钮与另一个按钮不同
- 编辑对象 jQuery 的属性
- ajax 正在用多个调用覆盖 XHR 对象 - jQuery
- 传递值并将其显示为对象 - jquery
- 如何将变量名转换为对象jQuery的索引字符串
- 访问多个动态对象 jQuery
- 使用OptGroup从两个分离的JSon对象JQuery填充Select
- 显示对象jquery中的数据
- 清空Javascript对象(Jquery Mobile)
- null不是对象-jQuery+传单
- 当事件是由单元格中的对象jQuery引起时,如何更改该单元格的自定义属性
- 未捕获类型错误:Property '$'对象- jQuery
- 从数组对象Jquery中移除对象
- 将属性值转换为对象(jquery或javascript)
- 不知道如何排序这个JSON对象jQuery/JavaScript
- 解析和字符串化json对象jquery
- 插入对象(jquery)延迟
- HTML ' img '标签不能在对象jquery中显示为图像