Javascript jquery咖喱
请看 如何更改此代码,使Javascript jquery咖喱,javascript,jquery,Javascript,Jquery,请看 如何更改此代码,使$(this)在单击事件中的行为类似于$(this),而不是返回完整的html文档 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html> <head> <meta http-equiv="Expires" content="Fri, Jan 01 1900 00:00:00 GMT"> <meta http-equiv="Prag
$(this)
在单击事件中的行为类似于$(this)
,而不是返回完整的html文档
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<meta http-equiv="Expires" content="Fri, Jan 01 1900 00:00:00 GMT">
<meta http-equiv="Pragma" content="no-cache">
<meta http-equiv="Cache-Control" content="no-cache">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta http-equiv="content-language" content="en">
<meta name="author" content="">
<meta http-equiv="Reply-to" content="@.com">
<meta name="generator" content="PhpED 5.2">
<meta name="description" content="">
<meta name="keywords" content="">
<meta name="creation-date" content="09/20/2007">
<meta name="revisit-after" content="15 days">
<title>Untitled</title>
<link rel="stylesheet" type="text/css" href="my.css">
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js" type="text/javascript"></script>
<script type="text/javascript">
function functionToCall(clickedItem) {
return function (ev) {
// both accessible here
alert(ev.type);
console.debug(clickedItem);
alert(clickedItem.attr('id'));
}
}
$(document).ready(function() {
$("a").live("click", functionToCall($(this)));
});
</script>
</head>
<body>
<a href='#' id="test">Test</a>
</body>
</html>
无标题
函数调用函数(单击编辑项){
返回功能(ev){
//都可以在这里找到
警报(ev.类型);
控制台调试(点击编辑项);
警报(单击editem.attr('id'));
}
}
$(文档).ready(函数(){
$($).live(“单击”,函数调用($(此));
});
像这样重构它:
function functionToCall(ev) { // ev -> event is passed by jQuery by default
var clickedItem = this; // this refers to the element that is clicked
// both accessible here
alert(ev.type);
//console.debug(clickedItem); // this may not work in all browsers. see my fiddle for a failsafe.
// failsafe: check if console exists
if(window.console && window.console.debug) { console.debug(clickedItem); }
alert($(clickedItem).attr('id')); // $() to get jQuery object
}
$(document).ready(function() {
$("a").live("click", functionToCall); // just need to pass a function reference
});
$("a").each(function(){
$(this).live("click",functionToCall($(this)));
})
演示:尝试以下内容:
function functionToCall(ev) { // ev -> event is passed by jQuery by default
var clickedItem = this; // this refers to the element that is clicked
// both accessible here
alert(ev.type);
//console.debug(clickedItem); // this may not work in all browsers. see my fiddle for a failsafe.
// failsafe: check if console exists
if(window.console && window.console.debug) { console.debug(clickedItem); }
alert($(clickedItem).attr('id')); // $() to get jQuery object
}
$(document).ready(function() {
$("a").live("click", functionToCall); // just need to pass a function reference
});
$("a").each(function(){
$(this).live("click",functionToCall($(this)));
})
不需要每个
。当你说$('a').live(…)
时,jQuery会将点击事件绑定到所有a
元素。我们中的一个人误解了这个问题