2016-02-17 121 views
2

應該是一個非常簡單的答案,但我現在無法弄清楚它。我有這個按鈕:按鈕點擊jquery不工作

<button id="logout" type="button">Logout</button> 

而且它應該在身體的底部運行腳本標籤內這jQuery代碼:

$("#logout").addEventListener("click", function() { 
    alert('Button Clicked'); 
}); 

但是,沒有警報彈出。我不明白。提前致謝。

回答

10

addEventListenerDOM元件的方法不是jQuery對象,它是一個數組狀結構,它包含所有被選擇的DOM元素

要附加使用jQuery事件,使用.on =>附加一個對一個或多個事件來選擇的元素事件處理函數

試試這個:

$("#logout").on("click", function() { 
 
    alert('Button Clicked'); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
 
<button id="logout" type="button">Logout</button>

使用JS:

document.getElementById("logout").addEventListener("click", function() { 
 
    alert('Button Clicked'); 
 
});
<button id="logout" type="button">Logout</button>

編輯:可以使用$(SELECTOR)[0]獲得由jQuery selector返回數組類對象第一DOM element$(SELECTOR).get(0)

0

您應該使用on方法來使用jquery中的事件處理函數。 addEventListener是一個核心的JavaScript事件方法。

$("#logout").on("click", function() { 
    alert('Button Clicked'); 
}); 

您仍然可以使用addEventListner迫使jQuery代碼爲JavaScript:

$("#logout")[0] //Now, this is JavaScript Object 
    .addEventListener("click", function() { 
    alert('Button Clicked'); 
}); 
0

您可以使用jQuery的點擊/功能上爲獲得按鈕工作。

實施例:

$("#logout").on("click", function() { alert('Button Clicked'); }); 
$("#logout").click(function() { alert('Button Clicked'); }); 
1

addEventListener()方法註冊在EventTarget指定的監聽器。

如果你真的想用addEventListener然後寫下面的代碼:

var el = document.getElementById("logout"); 
el.addEventListener("click", function() { 
    alert('Button Clicked'); 
}, false); 

否則這樣做與jQuery

$(document).on("click", "#logout", function() { 
    alert('Button Clicked'); 
}); 

OR

$("#logout").on("click", function() { 
     alert('Button Clicked'); 
    }); 
0

備選答案是:

$(document).on("click", "#logout", function() { 
    alert('Button Clicked'); 
}); 

這也適用於動態創建的元素。

0
<html> 
<head> 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script> 
<script> 

    $(document).ready(function() { 
     $("#logout").on("click", function() { 
      alert('Button Clicked'); 
     }); 
    }); 
</script> 
</head> 

<body> 
    <button id="logout" type="button">Logout</button> 
</body> 

</html> 
0
var element = document.getElementById("logout"); 

element.addEventListener("click", myFunction); 

function myFunction() { 

    // your code logic comes here 
} 
0

如果你去到控制檯像螢火蟲和類型$()你會看到jQuery對象,顯示了jQuery函數/對象的方法和屬性。此對象上沒有addEventListener。

addEventlistener是一種用於DOM的方法。如果您想通過「少寫多點」來利用jQuery,請使用jQuery方法,如on。這將允許您在元素上添加事件處理程序。

$(document).on("click", "#logout", function() { 
    alert('button clicked'); 
});