2011-09-10 71 views
1

我正在寫一個函數,它需要知道點擊div的位置。

我想知道如果我可以得到一個點擊對象的位置作爲一個JavaScript變量?

這裏是代碼。

HTML

<area shape="rect" coords="103, 0, 213, 25" href="#" onClick="swap3($(this),'product-details','product-specs');"> 

的Javascript:

function swap3(currentDivId ,oldDivId, newDivId) { 
    var oldDiv = currentDivId.nextAll("div." + oldDivId); 
    var newDiv = currentDivId.nextAll("div." + newDivId); 
    oldDiv.style.display = "none"; 
    newDiv.style.display = "block"; 
} 

回答

0

$()返回DOM元素(如一個對象,你可以工作與它的方法性能等),如果一個變量設置爲它,變量必須努力像一個jQuery的對象正確。但以我的經驗,有些時候不要!我學習最好的方法是通過jQuery-selector($)獲取變量。您的代碼是正確的,但應該更好,如果您應用這些更改:

function swap3(currentDivId ,oldDivId, newDivId) { 
    var oldDiv = $(currentDivId).nextAll("div." + oldDivId); 
    var newDiv = $(currentDivId).nextAll("div." + newDivId); 
    $(oldDiv).css({"display" : "none"}); 
    $(newDiv).css({"display" : "block"}); 
} 
+0

謝謝,仍然沒有工作,但我已經移動了這裏的問題... http://stackoverflow.com/questions/7368995/why-doesnt-my-div-swap-by-class-work/7369016#7369016和可能必須再次對其進行修改。 乾杯! –

+1

好的。我會看看鏈接,如果可以的話,我會幫你。 –

+3

這是不正確的。 '$(x)'從給定的DOM元素*返回一個* jQuery對象*(由'x'引用的那個,記得'this'設置爲在傳統事件回調中引發事件的元素)。 – 2011-09-10 01:37:28

3

this指的是當前元素。

在jQuery中,因爲他們使用$()來獲取元素,$(this)返回jQuery等同於vanilla JS的this

<area shape="rect" coords="103, 0, 213, 25" href="#" onClick="swap3(this,'product-details','product-specs');"> 
+0

謝謝你回答我的問題。在這種情況下,'這'的價值是什麼? 的編號? –

+1

如果提醒它,它就像Object [HTMLObject] - 一個DOM元素,包含有關標籤的所有信息,它是子元素,屬性等等。 – Joe

+0

這是不正確的。 '$(this)'返回包含一個元素的* jQuery對象* - 當前對this的評估。 – 2011-09-10 01:40:03

相關問題