Jquery, click 事件嵌套 click 的问题!抓狂中!!求办法!! 本帖最后由 flyaway0813 于 2012-12-05 03:40:19 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 问题是!为什么 dialog那个对话框不会打开很多遍呢!!!!无论点击多少次button,每次都只有一个对话框!!! 给pop_menu_edit绑定事件放到外面来,你放到里面每click一次menu_button就给pop_menu_edit绑定一次,导致多次绑定,点击一次pop_menu_edit就会打开多个dialog了,要不就需要移除绑定的时间先$('.menu_button').click(function(){ // 外部click var parent = $(this).parent().attr('id'); // 此处省略了显示pop_menu的代码 $(".pop_menu_edit").unbind('click').click(function(){ // 内部click! $('<p>').text(parent).appendTo(edit_div); edit_div.dialog({show: "slow"}); });}); jquery有一个once方法是绑定一次事件的 内部click方法改为$(".pop_menu_edit")[0].onclick = function(){ $('<p>').text(parent).appendTo(edit_div); edit_div.dialog({show: "slow"}); });其实你完全可以不用每次都注册事件,把pop_menu_edit的click事件定义在外面,在edit_div前添加代码如下:<input type="hidden" id="parent"/><p rel="parent"><p>js改成如下$('.menu_button').click(function(){ var parent = $(this).parent().attr('id'); $(".pop_menu_edit #parent").val(parent); // 此处省略了显示pop_menu的代码}); $(".pop_menu_edit").click(function(){ $("p[rel=parent]").html($("#parent").val()); edit_div.dialog({show: "slow"}); }); 在你不想触发的事件用event.preventDefault()试试 Extjs2.2布局问题 如何锁定下拉框?线等 求CSDN首页中右上角,图象的交换显示,特效代码 怎样获取文件名及路径 求每隔4分钟,跳出提示窗口代码,很简单的一时想不起来了 在线求助两个小问题。关于时间 万年历代码修改,只能前后翻一次,问题出在哪里,大家看看哦 通用的 DynForm 类初稿,及 JS OOP 讨论,抛砖引玉,欢迎发表高见 ondrag事件 【求助】刷新页面时 取消页面带的参数(在线等) js验证active directory 在ie8下使用excanvas.js 画图像,内存不回收,怎么办?
$('.menu_button').click(function(){ // 外部click
var parent = $(this).parent().attr('id');
// 此处省略了显示pop_menu的代码
$(".pop_menu_edit").unbind('click').click(function(){ // 内部click!
$('<p>').text(parent).appendTo(edit_div);
edit_div.dialog({show: "slow"});
});
});
内部click方法改为
$(".pop_menu_edit")[0].onclick = function(){
$('<p>').text(parent).appendTo(edit_div);
edit_div.dialog({show: "slow"});
});
其实你完全可以不用每次都注册事件,把pop_menu_edit的click事件定义在外面,
在edit_div前添加代码如下:<input type="hidden" id="parent"/><p rel="parent"><p>js改成如下$('.menu_button').click(function(){
var parent = $(this).parent().attr('id');
$(".pop_menu_edit #parent").val(parent);
// 此处省略了显示pop_menu的代码
});
$(".pop_menu_edit").click(function(){
$("p[rel=parent]").html($("#parent").val());
edit_div.dialog({show: "slow"});
});