我是jQuery的新手,我試圖實現一個非常簡單的工具提示,以瞭解jQuery如何工作。帶參數的jQuery函數
google搜索這之後就是我所做的:
的jQuery:
$(document).ready(function(){
$("#foo1").mouseover(function(e){
var x = e.pageX - $("#container").offset().left;
var y = e.pageY - $("#container").offset().top;
$('#div1').css({'top':y,'left':x}).show();
});
$("#foo1").mousemove(function(e){
var x = e.pageX - $("#container").offset().left;
var y = e.pageY - $("#container").offset().top;
$('#div1').css({'top':y,'left':x});
});
$("#foo1").mouseout(function(){
$('#div1').hide();
});
})
HTML:
<div style="width: 200px; border: 1px black solid; position: relative;">
Something here
</div>
<div id="container" style="width: 300px; border: 1px black solid; position: relative;">
<a id="foo1" href="javascript:void(0);">[hover me]</a>
<div id="div1" class="tt">Content goes here.</div>
<a id="foo2" href="javascript:void(0);">[hover me too!]</a>
<div id="div2" class="tt">I'm not working :(</div>
</div>
我以前var x = e.pageX - $("#container").offset().left;
,因爲我有問題時,#div1
是一個DIV中與position: relative;
一切正常,但如果我添加其他鏈接?
我想通過#foo1
和(並最終#container
,但實際上我真的不需要它)作爲參數,但事實是,我完全不知道如何做到這一點。
我試圖在這裏尋找,我發現這一點:JQuery, Passing Parameters
所以我想,也許我可以這樣做:
function doStuff(param1, param2) {
$(param1).mouseover(function(e){
var x = e.pageX - $("#container").offset().left;
var y = e.pageY - $("#container").offset().top;
$(param2).css({'top':y,'left':x}).show();
});
//etc etc
}
但我不知道如何召回HTML這樣的功能:在JavaScript中我會做類似onmouseover="doStuff('foo1', 'div1')"
,但我真的不知道如何處理jQuery:
編輯:
這是生成的div代碼:
foreach ($colors_array as $key => $value) {
echo "<div id='foo" . $key . "'>";
// something else
// according to some condition, I will decide whether to
// call or not the function doStuff for this div.
echo "</div>";
}
如何使用上'$子選擇器(本)',而不是給每個元素一個唯一的ID? – Zeta
看看[jQuery.ready()](http://api.jquery.com/ready/) – mercsen
@mercsen:你的意思是:'jQuery(document).ready(function($){ //使用$的代碼像往常一樣在這裏。 });'? – tmh