jquery應(yīng)該如何來設(shè)置改變按鈕input的onclick事件
更新時(shí)間:2012年12月10日 16:03:16 作者:
要?jiǎng)討B(tài)改變這個(gè)上一頁按鈕中onclick的函數(shù).我自己是嘗試了很多種方法,都沒有做出來,下面列舉的幾個(gè)都是失敗的例子,需要的朋友可以參考下
jquery應(yīng)該如何來設(shè)置按鈕input的onclick事件?比如開始時(shí)有個(gè)按鈕: <input id=”prebt” type=”button” value=”上一頁” onclick=”ToPage(2)”/>這行代碼是在程序后臺(tái)生成的,和Discuz!NT論壇源碼中的做法一樣,頁面上所有的東西連同腳本都是由后臺(tái)代碼生成..然后用jquery.ajax加載到頁面上來..其他的除了ie8不能顯示之外..其它瀏覽器都正常.現(xiàn)在的問題是:要?jiǎng)討B(tài)改變這個(gè)上一頁按鈕中onclick的函數(shù).我自己是嘗試了很多種方法,都沒有做出來,下面列舉的幾個(gè)都是失敗的例子:
1.JavaScript code:
$(“#prebt”).unbind(“onclick”,function(){var p= $(“#nextbt”).parent();$(“#nextbt”).remove();
p.append(“<input id=\”nextbt\” type=\”button\” value=\”編輯\” onclick=\”ToPage(14)\”/>”)});
JavaScript code:
$(“#prebt”).removeAttr(“onclick”);
$(“#prebt”).attr(“onclick”,”ToPage(4)”);
或者:
$(“#prebt”).attr(“onclick”,”");
$(“#prebt”).attr(“onclick”,”ToPage(4)”);
2.JavaScript code:
$(“#prebt”).removeAttr(“onclick”);
$(“#prebt”).click(function(){ToPage(4)}); //此句會(huì)導(dǎo)致死循環(huán)..不知是怎么回事..
//我做的分頁功能…這樣寫導(dǎo)致數(shù)據(jù)一直在亂跳,應(yīng)該怎樣來解決呢?
實(shí)在是沒有辦法了,只能是在網(wǎng)上發(fā)布了相關(guān)的請求,有朋友問我,是否我要的效果就如下面的:
$(“#prebt”).unbind(“onclick”);
$(“#prebt”).bind(“onclick”,”ToPage(4)”);
其實(shí)我要的效果就是跟上面的一樣的,但是上面的方法跟我原本的效果是差不多的,也是沒辦法執(zhí)行,而且根本都綁定不上去.
又有熱心的網(wǎng)友給了一個(gè)我代碼例子,說是對我有幫助,如下的細(xì)節(jié):
XML/HTML code:
<!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>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>無標(biāo)題文檔</title>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js"></script>
<script type="text/javascript">
//<![CDATA[
function toPage(id){alert(id);}
$(function(){
$('#btndemo').removeAttr('onclick').unbind('click').click(function(){
toPage(1);
})
})
//]]>
</script>
</head>
<body>
<input id="btndemo" type="button" value="click" onclick="toPage(4)" />
</body>
</html>
以上在ie8中測試時(shí),單擊時(shí)候結(jié)果為1,即使是這樣,但是還不是我原本所想要的效果。難道是真的沒有方法可以實(shí)現(xiàn)了嗎?
最終我還是自己給想出了一個(gè)比較笨的方法,可以實(shí)現(xiàn)的,如下:
<span id=”prespan”><input id=”prebt” type=”button” value=”上一頁” onclick=”ToPage(2)”/></span>
然后后臺(tái)程序自自動(dòng)把prespan中的內(nèi)容替換掉.
$(‘#prespan').empty();
$(‘#prespan').append(“<input id=\”prebt\” type=\”button\” value=\”上一頁\” onclick=”\ToPage(4)\”/>”);
雖然沒有用到設(shè)置onclick.但最后還是解決了我的難題。
1.JavaScript code:
復(fù)制代碼 代碼如下:
$(“#prebt”).unbind(“onclick”,function(){var p= $(“#nextbt”).parent();$(“#nextbt”).remove();
p.append(“<input id=\”nextbt\” type=\”button\” value=\”編輯\” onclick=\”ToPage(14)\”/>”)});
JavaScript code:
$(“#prebt”).removeAttr(“onclick”);
$(“#prebt”).attr(“onclick”,”ToPage(4)”);
或者:
$(“#prebt”).attr(“onclick”,”");
$(“#prebt”).attr(“onclick”,”ToPage(4)”);
2.JavaScript code:
復(fù)制代碼 代碼如下:
$(“#prebt”).removeAttr(“onclick”);
$(“#prebt”).click(function(){ToPage(4)}); //此句會(huì)導(dǎo)致死循環(huán)..不知是怎么回事..
//我做的分頁功能…這樣寫導(dǎo)致數(shù)據(jù)一直在亂跳,應(yīng)該怎樣來解決呢?
實(shí)在是沒有辦法了,只能是在網(wǎng)上發(fā)布了相關(guān)的請求,有朋友問我,是否我要的效果就如下面的:
復(fù)制代碼 代碼如下:
$(“#prebt”).unbind(“onclick”);
$(“#prebt”).bind(“onclick”,”ToPage(4)”);
其實(shí)我要的效果就是跟上面的一樣的,但是上面的方法跟我原本的效果是差不多的,也是沒辦法執(zhí)行,而且根本都綁定不上去.
又有熱心的網(wǎng)友給了一個(gè)我代碼例子,說是對我有幫助,如下的細(xì)節(jié):
XML/HTML code:
復(fù)制代碼 代碼如下:
<!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>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>無標(biāo)題文檔</title>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js"></script>
<script type="text/javascript">
//<![CDATA[
function toPage(id){alert(id);}
$(function(){
$('#btndemo').removeAttr('onclick').unbind('click').click(function(){
toPage(1);
})
})
//]]>
</script>
</head>
<body>
<input id="btndemo" type="button" value="click" onclick="toPage(4)" />
</body>
</html>
以上在ie8中測試時(shí),單擊時(shí)候結(jié)果為1,即使是這樣,但是還不是我原本所想要的效果。難道是真的沒有方法可以實(shí)現(xiàn)了嗎?
最終我還是自己給想出了一個(gè)比較笨的方法,可以實(shí)現(xiàn)的,如下:
復(fù)制代碼 代碼如下:
<span id=”prespan”><input id=”prebt” type=”button” value=”上一頁” onclick=”ToPage(2)”/></span>
然后后臺(tái)程序自自動(dòng)把prespan中的內(nèi)容替換掉.
復(fù)制代碼 代碼如下:
$(‘#prespan').empty();
$(‘#prespan').append(“<input id=\”prebt\” type=\”button\” value=\”上一頁\” onclick=”\ToPage(4)\”/>”);
雖然沒有用到設(shè)置onclick.但最后還是解決了我的難題。
相關(guān)文章
javascript獲得當(dāng)前的信息的一些常用命令
這篇文章主要介紹了javascript獲得當(dāng)前的信息的一些常用命令,需要的朋友可以參考下2015-02-02深入理解JavaScript系列(33):設(shè)計(jì)模式之策略模式詳解
這篇文章主要介紹了深入理解JavaScript系列(33):設(shè)計(jì)模式之策略模式詳解,策略模式定義了算法家族,分別封裝起來,讓他們之間可以互相替換,此模式讓算法的變化不會(huì)影響到使用算法的客戶,需要的朋友可以參考下2015-03-03