2012-01-12 52 views
0

我正在使用JQuery來創建「閱讀更多」按鈕。當有人點擊按鈕時會彈出一個彈出窗口。這個彈出窗口實際上是一個隱藏的div。我的問題是,雖然我點擊按鈕,我希望div出現在按鈕上,當我點擊彈出窗口上的十字標記時,它應該回到它起源於的同一個按鈕,但是我得到的結果是,當我點擊div出現的按鈕,而當我點擊交叉時,它會進入'read more'按鈕,我點擊第一個按鈕。請幫我解決這個問題。我想我的代碼中有一個小故障。我有它的小提琴http://jsfiddle.net/shivkumarganesh/qLEbD/如何使用JQuery修復此動畫?

回答

3

檢查此琴:http://jsfiddle.net/6uLF7/

的問題是與存儲離開了目標和頂部偏移變量的局部範圍。

的變化在頂部

新增2聲明:

var readMoreInfoTop = 0; 
var readMoreInfoLeft = 0; 

刪除var關鍵字從topleft分配的click處理

readMoreInfoTop = readMoreOffset.top + 10; 
readMoreInfoLeft = readMoreOffset.left + 10; 
+0

+1爲完美的解決方案;請你指出你的小提琴的變化? – diEcho 2012-01-12 06:21:07

+0

請參閱我的回答 – techfoobar 2012-01-12 06:24:10

+1

@techfoobar更新其實最好的解決方法是刪除$(」交叉)。從readmoreinfo塊單擊事件,並分別提到它,然後宣佈這兩個變量全球二者的點擊事件全球只有2個點擊事件。你可以看看這裏http://jsfiddle.net/shivkumarganesh/qLEbD/ – 2012-01-12 07:06:19

0

內每次打開時間按鈕,您將添加另一個偵聽器到關閉按鈕。重新綁定它之前,您可以解除綁定關閉的監聽器。 http://jsfiddle.net/qLEbD/54/

或更好,但...

綁定的密切監聽一次(按一下按鈕功能外)和存儲按鈕左側的位置單擊如。

//doc ready... 
function() { 

    var leftPosition; 

    $('.button').click(function() { 
    //animate popup to open 
    leftPosition = $(this).offset.left; 
    }); 

    $('#close').click(function() { 
    //animate popup to close using leftPosition 
    }); 
}(); 
+0

我得到的,但它不會是明智的,避免錯誤,是有..這只是一個修復。不過謝謝。我已經更改了http://jsfiddle.net/shivkumarganesh/qLEbD/中的內容,請檢查它。 – 2012-01-12 07:10:29