2012-01-04 55 views
0

我在我的項目中使用CSS通配符選擇器和jQuery通配符選擇器。如果我只有一個結果,一切似乎都正常工作,但如果我有兩個對話框,那麼我得到了奇怪的結果。多個div和多個對話框

有選擇工作,僅一個對話和DIV:

Working sample

與選擇器和兩個對話框,並div的工作:

Not working sample

  1. 爲了看到錯誤只需將兩個對話框並排放置即可。首先在第一個對話框內單擊,表單字段將獲得正確的值。之後點擊第二個對話框。這些值是錯誤的。我認爲是根據第一個對話框中的div來計算值。其次,在Firefox中,我點擊第一個對話框後有一些奇怪的結果。例如,我得到x = 12. [2139219329193]一些隨機數而不是一個整數。

理想的結果:

當你點擊一個對話框,我想根據對話框內div的,正確的座標內。我需要0,0和320,400之間的座標,這是兩幅圖像的大小!

+1

你忘了告訴我們預期的結果是什麼。 – 2012-01-04 22:25:47

+0

當您在對話框中單擊時,我想根據對話框中的div獲取正確的座標。我需要0,0和320,400之間的座標,這是兩幅圖像的大小! – glarkou 2012-01-04 22:29:27

+0

爲什麼你反覆調用'.dialog('open')'? – Alnitak 2012-01-04 22:46:48

回答

1

嘗試更換此:

var o = $("[id^=pointer_div]").dialog("open").offset(); 

有了這個:

var o = $(this).dialog("open").offset(); 

前者將再次找到這兩個指針DIV的,呼籲兩國dialog("open"),然後爲先返回offset()發現元素的

鑑於第二個版本使用this,它在click處理程序中使用時,將始終指向被單擊的特定元素。

+0

感謝隊友的工作。我正在使用'this.dialog(「open」)。offset();'它不起作用。你能否向我解釋'this.'和'$(this)之間的區別。「。最後你知道如何解決Firefox中數字的奇怪問題嗎? – glarkou 2012-01-04 22:49:56

+1

區別在於,在這種情況下,'this'是一個[純DOM節點](https://developer.mozilla.org/en/DOM/Node)。如果你將它傳遞給'$()',它會被包裝在一個jQuery對象中,它允許你調用'dialog'和'offset'(以及其他東西)。 – PPvG 2012-01-04 22:54:02

+0

在Firefox「問題」中,您是否嘗試過['Math.round()'](https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Math/round)? – PPvG 2012-01-04 22:54:46