[英]jquery Replace DIV data and then track clicks on it
我有一個<div id="myContainer"></div>
。 我還有一個按鈕: <input type="button" value="Send" id="sendButton">
點擊按鈕時:它將DIV替換為另一個:
$( "#sendButton" ).click(function() {
$( "#myContainer" ).replaceWith("<div id='calc'><input type=\"text\" id=\"screen\" value=0><button id=\"add\">+</button><button id=\"mul\">*</button><button id=\"settings\">settings</button><button id=\"clear\">clear</button></div>");
});
我想在點擊我剛剛放入的新按鈕后激活另一個功能( <button id=\\"mul\\">*</button>
):
$( "#mul" ).click(function() {
console.log(' mul clicked!');
});
哪個不起作用,我正在等待剛剛創建的div的點擊與它有關?
您需要將事件附加到#mul
。 因為它是動態附加的, $("#mul").click()
將不起作用。
.on()
將事件處理程序附加到當前選定的元素集。
嘗試:
$("body").on("click","#mul",function(){
console.log("mul clicked!");
});
當你調用$( "#mul" ).click()
,你將事件處理程序附加到#mul
因為它在那時存在。 要解決此問題,請在創建#mul
后調用$( "#mul" ).click()
。 #mul
$( "#mul" ).click()
。
$( "#sendButton" ).click(function() {
$( "#myContainer" ).replaceWith("<div id='calc'><input type=\"text\" id=\"screen\" value=0><button id=\"add\">+</button><button id=\"mul\">*</button><button id=\"settings\">settings</button><button id=\"clear\">clear</button></div>");
$( "#mul" ).click(function() {
console.log( ' mul clicked!' );
});
});
您還可以將jQuery的.on
方法與可選的選擇器一起使用,根據文檔稱為委托事件處理程序 。 如果你想要的話,請查看jQuery的API : jQuery API文檔 。 基本用法就像是
$( document ).on( "click", "#mul", function( ) {
console.log( ' mul clicked!' );
});
用這個
$(document).on("click","#mul",function() {
代替
$( "#mul" ).click(function() {
要么
$( "#sendButton" ).click(function() {
$( "#myContainer" ).replaceWith("<div id='calc'><input type=\"text\" id=\"screen\" value=0><button id=\"add\">+</button><button id=\"mul\">*</button><button id=\"settings\">settings</button><button id=\"clear\">clear</button></div>");
$( "#mul" ).click(function() {
console.log(' mul clicked!');
});
});
$( "#sendButton" ).click(function() {
$( "#myContainer" ).replaceWith("<div id='calc'><input type=\"text\" id=\"screen\" value=0><button id=\"add\">+</button><button id=\"mul\">*</button><button id=\"settings\">settings</button><button id=\"clear\">clear</button></div>");
// add listener here
$( "#mul" ).click(function() {
console.log(' mul clicked!');
});
$( "#mul" ).trigger("click"); // add this to your code
});
http://api.jquery.com/trigger/查看觸發器的詳細信息()
http://jsfiddle.net/tnnj5/這是一個演示
在新內容插入dom后必須添加偵聽器
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.