生活随笔
收集整理的這篇文章主要介紹了
动态添加JS 事件
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Javascript為元素動態的添加事件包括兩種情況:
不帶參數的事件和帶參數的事件。
一、不帶參數的事件:
兩種方式:直接給對象添加事件,節點添加事件
例如給一個id為tab1的添加onclick事件
第一種情況:
var t = document.getElementById("NewTitle");
t.onclick = function showmsg(){
??? alert('Hello!World');
}
第二種情況 這種情況更加動態,更為實用,而且還能添加多個函數(添加的事件的順序即執行順序),呵呵
?? var tb = document.getElementById("NewTitle");
??? if(window.addEventListener){ // Mozilla, Netscape, Firefox
??????? td_value.addEventListener('click', alert('cc'), false);
??????? td_value.addEventListener('click', alert('cc'), false);
??? } else { // IE
??????? td_value.attachEvent('onclick',? function(){alert('changchang');});
??????? td_value.attachEvent('onclick',? function(){alert('changchang');});
??? }
二、帶參數的事件
這里的functionName就是事件處理函數,如果是帶參數的那該怎么辦,
有人說是這樣:
element.οnclick=function(sb){
??????? alert(sb);
??? }
是不是上面的那種寫法呢?答案是不正確的。
解決方法:匿名函數:
??? element.οnclick=function() {
??????? functionName(param);
??? };
這樣就巧妙的通過匿名方法實現了!
?
以上是從別的地方看見的,我自己試了個這樣的例子,是對按鈕的執行過程中設置一定的時間無法繼續點擊按鈕提交事件
[c-sharp] view plaincopy
<%@?Page?Language="C#"?AutoEventWireup="true"?CodeBehind="TestSample.aspx.cs"?Inherits="WebSample.TestSample"?%>????<!DOCTYPE?html?PUBLIC?"-//W3C//DTD?XHTML?1.0?Transitional//EN"?"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">????<html?xmlns="http://www.w3.org/1999/xhtml"?>??<head?runat="server">??????<title>Untitled?Page</title>??????<mce:script?language="javascript"?type="text/javascript"><!--??????????function?timeClick()??????????{??????????????var?obj=document.getElementById('<%=btnTime.ClientID?%>');??????????????obj.style.backgroundColor="gray";??????????????obj.οnclick=function(){?return?false;};??????????????setTimeout(resetbgColor,3000);??????????}????????????????????function?resetbgColor()??????????{??????????????var?obj=document.getElementById('<%=btnTime.ClientID?%>');??????????????obj.style.backgroundColor="";?????????????????????????obj.οnclick=function(){??????????????????timeClick();??????????????};??????????}??????????</head>??<body>??????<form?id="form1"?runat="server">??????<div>?????????????<asp:Button?ID="btnTime"?runat="server"?Text="Time"???????????????OnClientClick="timeClick();"?οnclick="btnTime_Click"?/>????????</div>??????</form>??</body>??</html>??
上面對面中被屏蔽的一句: //?? $('#'+'<%=btnTime.ClientID %>').click(timeClick); 好像用這句的話,后臺的Click事件就不會執行了,所以被棄用了
?
后臺代碼:
[c-sharp] view plaincopy
private?void?ExportTxt()????????{????????????string?fileName?=?"1111";????????????Response.Clear();????????????Response.Buffer?=?false;????????????Response.ContentEncoding?=?System.Text.Encoding.UTF8;????????????Response.AppendHeader("Content-Disposition",?"attachment;filename="?+?Server.UrlEncode(fileName)?+?".txt");????????????Response.ContentType?=?"text/plain";????????????this.EnableViewState?=?false;????????????Response.Write("abc");????????????Response.End();????????}????????????protected?void?btnTime_Click(object?sender,?EventArgs?e)????????{????????????ExportTxt();????????}?
總結
以上是生活随笔為你收集整理的动态添加JS 事件的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。