4
回答
js--能否获取到,动态绑定的事件类型和方法名
利用AWS快速构建适用于生产的无服务器应用程序,免费试用12个月>>>   
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);
}
<无标签>
举报
wenzhengao
发帖于4年前 4回/2K+阅
共有4个答案 最后回答: 2年前
function fu_name001(){
    var _cler = fu_name001.caller.toString();
    var _clee = arguments.callee;
    console.log(_cler);
    console.log(_clee);
}

引用来自“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);
};

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

$(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);

};

顶部