我正在嘗試將點擊事件與jQuery中的函數結合起來,但不知何故它只能在第二次點擊後才起作用。爲點擊元素分配id,然後運行scrolld.js函數
點擊後,起初我需要的元素的id改變什麼,我給它,然後函數需要趕上與改變ID和運行的元素。
我不能帶班在這裏工作很遺憾,所以我不得不改變對點擊的元素ID。
$('.element').click(function()
// here the element gets id "divBtn"
{if(this.id){this.id = "divBtn";}
// this is the function I need to run on the above first click
// this function is also the trigger to call scrolld.js (scrolldjs.com) so I am not sure if I
// can modify this part or not
$("[id*='Btn']").stop(true).on('click',function(e)
{e.preventDefault();
$(this).scrolld();
});
});
在第二行中的元素的id被變更爲「divBtn」與第一點擊。這可以在控制檯中看到。
但是隻有在第二次點擊雖然功能捕獲ID爲「divBtn」和運行的元素。
我該如何將它合併爲一次點擊?
新的jQuery和學習,所以這可能是非常明顯的。謝謝你的幫助或輸入。如果你有答案,如果你不介意的話,請評論你的代碼或者詳細解釋,因爲我剛剛開始使用jQuery。謝謝。
編輯01:請注意腳本/函數我需要在元素上運行只適用於在id的末尾有一個id和「Btn」的元素,因此我需要使用元素的id。如果有可能擺脫第二次點擊並運行我想要的功能。
編輯02:這是一個工作 jsfiddle http://jsfiddle.net/ASzTg/10/你可以在瀏覽器控制檯上看到id在第一次點擊時改變。然後第二次點擊捕捉到scrolld腳本並完成它的工作。從jsfiddle你可以看到我想要得到的,點擊導航欄鏈接很好地滾動所需的div到我想要的位置(或任何其他)。
Scrolld用於滾動所述內容包裝到所希望的位置(頂部或任何其他)一旦導航欄鏈路的任何被點擊。由於Scrolld只接受一個id,我必須在點擊時指定id,然後運行腳本。
希望這有助於我所要做的。如果你看到http://scrolldjs.com/#use你可以看到觸發器,這可能解釋了兩個事件處理程序。希望這有助於找到正確的答案。
問候
這是沒有意義的,事件處理程序內的事件處理程序,使用停止()沒有明顯的原因,改變某些元素的ID,使其與一個事件處理程序工作,curlybraces中使用聖各種各樣的方式? – adeneo
在第二行,如果你將你的id設置爲divBtn,你爲什麼要在下一行檢查id是否是divBtn?另外,如果你將你的div id設置爲「divBtn」,你爲什麼要將點擊事件綁定到id =「Btn」?它不應該是$(「[id * ='divBtn']」)。on('click',function(e) –
該函數在最後捕獲所有具有id「Btn」的元素,然後將視口滾動到該元素的頂部或所需的其他位置。由於我無法使該函數工作類我不得不通過單擊來指定帶有「Btn」id的(錨)元素,因爲我不能在html中擁有多個具有相同id的錨。觸發器函數在這裏給出了scrolldjs.com並且如果我能修改對於奇怪的格式只是從jQuery開始對不起, – moderntimes