$(“.box a”).live(“点击”如何修改它
$(".box a").live("click" how to modify it
嗨,伙计们需要一点帮助。
我知道.live
不再在 jQuery v1.9 中工作,我的以下函数是否有任何替代方案可以恢复工作,我尝试.on()
和.bind()
但没有成功。这是小提琴
.HTML
<div id="container">
<p>There are 0 boxes</p>
<a href="#" class="more">Add more +</a>
</div>
jQuery
$(".more").click(function() {
$("#container").append("<div class='box'><a href='#'>x</a></div>");
var count = $(".box").length;
$("p").text("There are " + count + " boxes.");
if(count>2){
$(".more").hide();
}
});
$(".box a").live("click", function() {
$(this).parent().remove();
var count = $(".box").length;
$("p").text("There are " + count + " boxes.");
if(count<3)
{$(".more").show();}
});
对动态添加的元素使用事件委派:
http://jsfiddle.net/89wTX/11/
$(".more").on('click', function() {
$("#container").append("<div class='box'><a href='#'>x</a></div>");
var count = $(".box").length;
$("p").text("There are " + count + " boxes.");
if(count>2){
$(".more").hide();
}
});
$("#container").on("click", '.box a', function() {
$(this).parent().remove();
var count = $(".box").length;
$("p").text("There are " + count + " boxes.");
if(count<3)
{$(".more").show();}
});
当您只使用on而不进行委派时,它会将侦听器附加到现有元素一次。当您添加新元素(在您的案例中为框)时,它们没有附加侦听器。
你的脚本代码应该是这个;
$(".more").click(function() {
$("#container").append("<div class='box'><a href='#'>x</a></div>");
var count = $(".box").length;
$("p").text("There are " + count + " boxes.");
if(count>2)
{
$(".more").hide();
}
$(".box a").click(function() {
$(this).parent().remove();
var count = $(".box").length;
$("p").text("There are " + count + " boxes.");
if(count<3)
{
$(".more").show();
}
});
});
这是小提琴
TRy thishttp://jsfiddle.net/devmgs/89wTX/9/
$(document).on("click",".box a", function() {
console.log("removeing");
$(this).parent().remove();
var count = $(".box").length;
$("p").text("There are " + count + " boxes.");
if(count<3)
{$(".more").show();}
});
用于 :
$(".box").on("click","a", function() {...})
$(".box").on("click","a", function() {
....
});
参考资料
相关文章:
- 在Safari执行javascript之前对其进行修改
- 从客户端获取修改后的对象,并将其与服务器上的原始对象组合
- 用Javascript修改内部标记的CSS规则
- 绑定Range输入以修改样式
- 可以从Chrome扩展修改窗口对象吗
- jQuery滚动器插件修改
- 将函数从onclick修改为onload
- jQuery UI自动完成-修改问题
- Javascript日期修改
- 如何通过JQuery修改样式属性
- 使用treewalker修改表
- Angularjs:修改js中的作用域,稍后在页面中使用
- 在编译阶段后创建新的DOM树,或者继续使用原始修改的DOM
- 修改控制器AngularJS的全局值
- 修改数据后,setState不会触发重新渲染
- 通过sdk/system/events在修改请求观测器上测试http
- GWT:有没有一种方法可以修改GWT在编译中使用的Cast.java文件
- 在多个元素上使用jquery插件,只需稍作修改
- 为什么我从浏览器修改html/js时会多次发送ajax请求
- 动态修改一个元素,使其与给定的选择器匹配