与“click”事件一起存储的jQuery元素未按要求工作
jQuery element stored with `click` event not working as required
我的一个应用程序开发需要
我克隆了 3 次link
并存储在一个对象中。 存储到对象后,我向存储对象的link
元素添加了一些单击事件。
我有一个导航链接,当用户单击导航编号时,我将存储的元素附加到容器中。
一切都有效。问题是:
link
的click
事件仅适用于页面加载。 将另一个存储的对象改组到容器后,它不起作用。
如何解决这个问题。事件都消失了。 click
事件无法进一步工作。
这是我的JS:
var listLength = $('li').length;
var origional = $('.content');
var catcheEl = {};
for(i=1;i<= listLength;i++){
catcheEl['content'+i] = origional.clone();
var link = $(catcheEl['content'+i]).find('a').addClass('link'+i);
addEvent(link);
}
function addEvent (link) {
var x = 0;
link.click(function(e){
e.preventDefault();
x++;
console.log(x);
$(this).addClass('p'+x); //only adds on page load.
});
}
$('li').click(function(){
var num = $(this).find('button').prop('class');
$('#newContainer').html(catcheEl['content'+num]); //not working once other elements loaded.
});
$('.content').hide();
现场演示
我需要的是:
我应该打乱
link
元素单击导航按钮element
的类名应继续添加的事件应继续。
提前谢谢。
编辑新答案
我不太喜欢它,因为它依赖于类值(您应该做一些安全检查,但是......基本上我已经编辑了你定义x
的方式,所以我检索了 a 的所有类,拆分了它们,检查了数组的长度。
然后,如果它是1
(仅link
类)或0
(不知道,以防万一)或不是数组,则设置0
否则检索最后一个数组元素并删除所有非数字(希望不知道空字节或类似的有趣家伙)。
var listLength = $('li').length,
origional = $('.content'),
catcheEl = {};
function addEvent(link) {
//Define the x variable
var v=link.attr('class').split(/'s+/),
l=v.length,
x= (v.constructor === Array && (l==1 || l===0))? 0:parseInt(v[l-1].replace(/'D/g,''));
link.click(function (e) {
e.preventDefault();
x++;
$(this).addClass('p' + x);
});
}
for (i = 1; i <= listLength; i++) {
catcheEl['content' + i] = origional.clone();
var link = $(catcheEl['content' + i]).find('a').addClass('link' + i);
addEvent(link);
}
$('li').click(function () {
var num = $(this).find('button').prop('class');
$('#newContainer').html(catcheEl['content' + num]);
addEvent($(catcheEl['content' + num]).find('a')); //Re-bind the event
});
$('.content').hide();
小提琴
相关文章:
- JavaScript-在手机上不工作的情况下,在外部单击时隐藏元素
- 用javascript将script元素附加到头部;铬不能工作
- 点击功能没有'ajax调用动态元素(Backbone)后无法工作
- 无法使以下ng on click outside指令在同一页面上的两个元素上工作
- DIV怎么能像Javascript中的另一个元素一样工作呢
- javascript()onclick隐藏元素-dos'我不在firefox工作
- 没有获得基础's的Javascript元素工作(与Laravel和Elixir)
- 为什么在ASP.NET Ajax更新面板中执行任何操作后javascript元素都停止工作
- jQuery插件在为元素分配id时停止工作
- 注入的元素和jQuery脚本.如何让他们一起工作
- 自动完成搜索无法正常工作,请不要迭代$中的所有元素.每个ul-li都会及时显示响应
- 让 jquery 为 ajax 添加的元素工作的最佳方法是什么?
- 似乎无法获得'.focus()'元素工作.
- 如何使工具提示从函数本身之外的元素工作
- 似乎不能让JQuery's .on()为通过脚本创建的元素工作
- 添加元素工作,但清除输入值
- jQuery选择器不能为动态创建的元素工作
- IE11 Javascript更改事件不与html表单元素工作
- 欧芹js会为运行时出现的元素工作吗
- 为什么点击一个元素来触发一个事件会阻止另一个元素工作呢?