2013-07-24 107 views
-1

我有一個基於滾動位置觸發點擊的jQuery腳本。如果用戶返回到頁面的頂部,我希望能夠再次單擊此元素,以便聯繫表單將隱藏自己。問題是它創建了一個循環。避免在jQuery中重複使用.click()

jQuery(window).scroll(function (event) { 
     var y = $(this).scrollTop(); 
     if (y > 400) { 
     $("#contactable-inner").click(); 
     $("#contactable-inner").unbind('click');} 
    }); 

你可以去這裏看看我的工作:http://algk.me

UPDATE:

$(window).scroll(function(){ 
     var y = $("body").scrollTop(); 
     var hidden = $('.hidden'); 
     if (y >= 1000 && (hidden.hasClass('visible'))){ 
     hidden.animate({"left":"-1000px"}, "slow").removeClass('visible'); 
     } else { 
     hidden.animate({"left":"0px"}, "slow").addClass('visible'); 
     } 
    }); 

任何想法,我怎麼能得到這個卷軸上的工作?

+0

什麼是循環? – Ryan

+0

如果我改變代碼的說: \t \t \t'的jQuery(窗口).scroll(功能(事件){ \t \t變種Y = $(本).scrollTop(); \t \t如果(Y> 400 ){。 \t \t $(「#接觸-內」)點擊(); \t \t});' 發出滴答聲,因爲我承擔滾動位置同時創建幾個點擊動作..然後點擊它,直到它的完成..希望這是有道理的。 – lenh4rtjames

回答

1

如果您使用jQuery的.show()怎麼辦?而不是模擬點擊。

jQuery(window).scroll(function (event) { 
    var y = $(this).scrollTop(); 
    if (y > 400) { 
     $("#contactable").show(); 
    } 
    else { 
     $("#contactable").hide(); 
    } 
}); 
+0

問題是,聯繫表格使用切換顯示該分區內的內容... – lenh4rtjames

+0

這將是完美的,如果它不使用切換加載分區的內容..我得找出一個不同的方式來做這個。 – lenh4rtjames

0

如果你想只執行一次單擊處理程序,那麼你可以使用one,這將使你的處理程序只進行一次處理。

$("#contactable-inner").one('click', function(e){ 
    // code goes here 
}); 

$(window).scroll(function (event) { 
    var y = $(this).scrollTop(); 
    if (y > 400) { 
     $("#contactable-inner").click(); 
    } 
}); 

DEMO.

+0

我加了這個,我不確定它是否正確。您可以在algk.me上看到實際結果 – lenh4rtjames

+0

仍嘗試多次打開和關閉側面區域,然後突然停止。 – lenh4rtjames

+0

你是否檢查過演示,它的工作原理是這樣的。 –