मैं jQuery के लिए नया हूं, और जावास्क्रिप्ट और jQuery में ट्यूटोरियल के बाद, टैब्ड पैनल बना रहा था : मिसिंग मैनुअल , जब लेखक ऐसा करता है तो वह पहली पंक्ति होती है:
var target = $(this);
लेकिन मैंने इसे इस तरह से करने की कोशिश की
var target = evt.target;
और मुझे वह त्रुटि मिली:
Uncaught TypeError: Object http://localhost/tabbedPanels/#panel1 has no method 'attr'
और जब मैं evt.target
वापस बदल गया $(this)
, यह एक आकर्षण की तरह काम किया।
मैं जानना चाहता हूँ के बीच अंतर क्या चाहते हैं $(this)
और evt.target
?
यदि आपको इसकी आवश्यकता है तो मेरा कोड यहाँ है:
index.html:
<!DOCTYPE html>
<html>
<head>
<title>Tabbed Panel</title>
<style>
body {
width : 100%;
height: 100%;
}
#wrapper {
margin : auto;
width : 800px;
}
#tabsContainer {
overflow: hidden;
}
#tabs {
padding:0;
margin:0;
}
#tabs li {
float : left;
list-style:none;
}
#tabs a {
text-decoration:none;
padding : 3px 5px;
display : block;
}
#tabs a.active {
background-color : grey;
}
#panelsContainer {
clear: left;
}
#panel1 {
color : blue;
}
#panel2 {
color : yellow;
}
#panel3 {
color: green;
}
#panel4 {
color : black;
}
</style>
<script type="text/javascript" src="jquery-1.8.0.min.js"></script>
<script type="text/javascript" src="script.js"></script>
</head>
<body>
<div id="wrapper">
<div id="tabsContainer">
<ul id="tabs">
<li><a href="#panel1">Panel1</a></li>
<li><a href="#panel2">Panel2</a></li>
<li><a href="#panel3">Panel3</a></li>
<li><a href="#panel4">Panel4</a></li>
</ul>
</div>
<div id="panelsContainer">
<div id="panel1" class="panel">
this is panel1
</div>
<div id="panel2" class="panel">
this is panel2
</div>
<div id="panel3" class="panel">
this is panel3
</div>
<div id="panel4" class="panel">
this is panel4
</div>
</div>
</div>
</body>
</html>
script.js:
$(function(){
$("#tabs a").click(function(evt){
var target = evt.target,
targetPanel = target.attr("href");
$(".panel").hide();
$("#tabs a.active").removeClass("active");
target.addClass("active").blur();
$(targetPanel).fadeIn(300);
evt.preventDefault();
});
$("#tabs a:first").click();
})
$(evt.target)
और (इस मामले में) के रूप में अच्छी तरह से एक ही परिणाम के साथ समाप्त होता है। .attr()
विधि jQuery वस्तु, नहीं तत्व से ही प्रदान की जाती है
this
जावास्क्रिप्ट DOM तत्व का संदर्भ है।$()
DOM तत्व को jQuery ऑब्जेक्ट में बदलने के लिए jQuery द्वारा प्रदान किया गया प्रारूप है। का उपयोग करevt.target
आप एक तत्व को संदर्भित कर रहे हैं, जबकि साथ$(this)
आप मानकों के साथ एक वस्तु को संदर्भित करते हैं कि हमें की पहुंच है।