js--能否获取到,动态绑定的事件类型和方法名

wenzhengao 发布于 2013/09/13 15:41
阅读 2K+
收藏 0
function getfn_name(){

$("<div id='mydiv'>mydiv</div>").appendTo("body");

var mydiv=$("#mydiv");
mydiv.click(function(){
	fu_name001();
});

mydiv.focus(function(){
	fu_name002();
});
/*
...
...
n个事件
*/


}


fu_name001(){
console.log(1111);

}

fu_name002(){

	console.log(2222);
}


/*如下我的问题
1,我想或取ID为--mydiv元素-的事件名或叫事件类型如click,focus
2,我想再接着获取click,focus function中的fu_name001,fu_name002 这样事件名

因mydiv的事件都是动态加上的,我在chrome bug工具下也看不到,比如

我在跟踪百度首页搜索框,就不知道那个框里绑定了什么事件,怎么去查看Fn,找到准确位置。

大师帮助啊,感谢



*/
function getfn_name(){

$("<div id='mydiv'>mydiv</div>").appendTo("body");

var mydiv=$("#mydiv");
mydiv.click(function(){
	fu_name001();
});

mydiv.focus(function(){
	fu_name002();
});
/*
...
...
n个事件
*/
//如下我的问题
1,我想或取ID为--mydiv元素-的事件名或叫事件类型如click,focus
2,我想再接着获取click,focus function中的fu_name001,fu_name002 这样事件名

}


fu_name001(){
console.log(1111);

}

fu_name002(){

	console.log(2222);
}
加载中
0
Narky
Narky
function fu_name001(){
    var _cler = fu_name001.caller.toString();
    var _clee = arguments.callee;
    console.log(_cler);
    console.log(_clee);
}
0
Narky
Narky

引用来自“Narky”的答案

function fu_name001(){
    var _cler = fu_name001.caller.toString();
    var _clee = arguments.callee;
    console.log(_cler);
    console.log(_clee);
}

完整一点的实现功能的方法

$('#mydiv').click(function(evt){
	fu_name001();
});

function fu_name001(){
	var _cler = fu_name001.caller;
    var _clee = arguments.callee;
    console.log(_cler.arguments[0].type);
    console.log(_clee.name);
};

0
wenzhengao
wenzhengao

你方法只能在被调用里显示,我想 这样

$(function(){
$("<div id='mydiv'>xxx</div>").css("border","1px solid red").appendTo("body");

$('#mydiv').click(function(evt){
	fu_name001();
}).dblclick(function(evt){
   fu_name002();
});

});

function fu_name002(){
  return false;
}

function fu_name001(){

 var crs=$('#mydiv').attr("onclick");
 console.log(crs);//这里显示出fu_name001,fu_name002

//能实现吗

   //var _cler = fu_name001.caller;
   // var _clee = arguments.callee;
   // console.log(_cler.arguments[0].type);
   // console.log(_clee.name);

};

0
零七九三
零七九三
既然是动态查找节点,那必须用find去获取:
var mydiv=$('body').find("#mydiv");//后生元素须用find查找



返回顶部
顶部