我正在嘗試創建一個動態的按鈕列表,它會對用戶做出反應。代碼如下:jQuery .on()方法不執行元素上的jQuery功能
$('#left').on("mouseenter", 'div', function() {
dispEvent($(this).hasClass('button');
$(this).addClass('highlighted');
});
$('#left').on("mouseleave", 'div', function(event) {
dispEvent($(event.target).hasClass('button');
$(this).removeClass('highligted');
});
$('#left').on('click', 'div', function(event) {
dispEvent(event.target == this);
$(this).remove();
});
'#left'id是相關div的靜態容器(按鈕面板)。 dispEvent是顯示信息的幫助函數。我知道該函數正在執行,因爲當事件觸發時我的顯示正在更新。
我也知道它找到一個html元素,該元素具有正確的類,並且事件目標和我引用的'this'是相同的(如顯示輸出'true'),但對於某些原因我無法在.on()方法中添加該類。 我通過$([selector]).hover()將該類添加到一個靜態創建的按鈕,以確保類名是正確的,.addClass()正常工作(它按預期工作)。由於$(this).hasClass('button')返回true並且測試.remove()移除了元素,我知道它識別該元素,並且可以將其包裝到一個jQuery對象中並執行功能就可以了。
回顧一下。 addClass()函數和高亮類用鼠標懸停在靜態對象上,.on()識別事件並輸入其代碼,jQuery將對象識別爲html元素,並且可以對其執行至少一些功能,但它不能在.on()中添加該類。 (當我有.on()函數時,即使靜態按鈕也不會添加高亮類)。
對不起,問題的問題,但我想徹底。感謝您的時間。
這很羅嗦。請張貼更多的代碼,並可能是一個jsfiddle。謝謝。 – Timmerz 2014-11-08 13:02:09
如果我沒有澄清,我怎麼能得到addClass的工作? – LushKitch 2014-11-08 13:02:15
總是使用你的控制檯調試js,明顯的語法錯誤 – 2014-11-08 13:03:05