<html>
<head>
<script type="text/javascript" src="js/jquery.js"></script>
<script type="text/javascript">
$('document').ready(function() {
$('#test').click(function() {
$('#test').html('<input type="button" value="測試" class="cancel"/>');
});
$('.cancel').click(function() {
alert('cancel');
});
});
</script>
</head>
<body>
<div id='test'>123</div>
</body>用html()產生的button,不會執行click中的程式
請問大家有解決的辦法嗎
</html>漏掉了^^"
感謝wordsmith,你的方法我試成功囉
不好意思再補充一個問題
假如我在第7行後補充一個指令
$('#test').addClass('edit');
又在第10行後補充一行
$('#test').removeClass('edit');
這樣一來,removeClass() 似乎又沒辦法移除class
煩請大家指點一下,謝謝
於 2008-10-09 11:27:21 補充
不好意思,要參照wordsmith的程式才對
第3行後加一行
$('#test').addClass('edit');
第5行後加一行
$('#test').removeClass('edit');
於 2008-10-09 11:29:50 補充
最佳解答(發問者自選)
(ps.你的範例中,最後少了</html>,應該是copy&paste掉的吧)
7人
你的情況的話,將註冊.cancel事件放進#test註冊click的event中,應該就可以work了
寫法如下:
$('document').ready(function() {
$('#test').click(function() {
$('#test').html('<input type="button" value="測試" class="cancel"/>');
$('.cancel').click(function() {
alert('cancel');
});
});
}); (ps.你的範例中,最後少了</html>,應該是copy&paste掉的吧)
2008-10-09 17:57:14補充會這樣是因為按下按鈕時,又觸發了div#test的click事件,所以把remove掉的class又加了回來,請看討論中的詳細說明。
[-隱藏]
回應 :
fillano 說:
irukawa,你在產生.cancel的click事件時,這個button還沒產生哪。像wordsmith講的改一下應該就可以了。這是先後順序的問題,其實跟jQuery沒直接關係。
2008-10-08 19:56:06
▼ ADVERTISEMENT ▼
-
‧
-
‧
-
‧
相關問答
- 看jQuery作者John Resig談進階JavaScript
- jaceju大大「自製 jQuery Plugin - Part 1」
- [ASP.NET 控制項實作 Day30] 整合 jQuery ContextMenu 的右鍵選單控制項
- jQuery 1.2.6釋出,改善效能並將Dimension的plug-in放到核心
- 快速搞懂jQuery選取dom的技巧
- 有趣的V8 Javascript Engine
- jQuery UI - ThemeRoller,線上客製你的網頁元件風格
- 什麼是JavaScript Hijacking?
- 用jquery刻出來的iPod風格階層選單
- Google提供幾個Ajax Libraries的Hosting服務
- Mozilla釋出TraceMonkey加速JavaScript
- 寫物件導向風格的JavaScript
- 下載電子書Adobe AIR for JavaScript Developers Pocketguide
- 建議搜尋提示框的bar功能
- 利用Firebug的console功能作JavaScript偵錯
- JavaScript函setTimeout的scope
- JavaScript如何在不同網站之間傳遞資料
- JavaScript中的closure好難懂,它和匿名函式有什麼不同?
- 在Ruby上,可以用近似 jQuery語法來解析DOM的好工具 -Hpricot









