任何jQuery帮助将不胜感激。我有两个用jquery创建的对象(相同)。一个在文档打开时加载(附加到body标签),另一个在按钮单击事件中附加到body标签。当我点击第一个时,它会发出一条警告信息,但第二个不会发出警告信息(也希望它也能点火)。我已将JSFiddle链接包含在我的代码中。
我的代码:
<label for="" id="Label01" style="position:absolute;left:10px;top:15px;width:186px;height:23px;line-height:23px;z-index:8;">Button Created</label>
<label for="" id="Label02" style="position:absolute;left:190px;top:15px;width:186px;height:23px;line-height:23px;z-index:8;">Without Button</label>
<label for="" id="Label03" style="position:absolute;left:30px;top:115px;width:150px;height:18px;line-height:18px;z-index:1;">Click on a image</label>
<input type="submit" id="Button1" value="Create Image" style="position:absolute;left:495px;top:100px;width:106px;height:35px;z-index:0;">
<script
src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.2/jquery.min.js">
</script>
<script>
var $i1;
var $circle;
var dot = "dot1";
var dot_btn = "dot2";
// next (3) lines will create circle image and append to body WITHOUT button
click event
$i1 =$('<i/>').attr({ class: "far fa-dot-circle fa-2x" });
$circle = $('<div/>').attr({ id: dot
}).css({"position":"absolute","left":"200px","top":"40px"}).append($i1);
$("body").append($circle);
// button click to create another circle image
$("#Button1").click(function() { // click event - triggers a
alert("btn clicked");
var btnCircle;
$i1 =$('<i/>').attr({ class: "far fa-dot-circle fa-2x" });
btnCircle = $('<div>').attr({ id: dot_btn
}).css({"position":"absolute","left":"10px","top":"40px"}).append($i1);
$('#dot2').bind('click', function() { });
$("body").append(btnCircle);
});
// NOTE only "dot1" works (without creation using the button click jquery
code)
$("#dot1").on("click",function() {
alert("dot1 clicked");
});
$("#dot2").on("click",function() {
alert("dot2 clicked");
});
</script>
这是jsfiddle链接:
https://jsfiddle.net/jgwilly54/q13aLko8/1/
提前感谢您的协助。
答案 0 :(得分:1)
从
更改代码$("#dot2").on("click",function() {
alert("dot2 clicked");
});
要
$(document).on("click", "#dot2" ,function() {
alert("dot2 clicked");
});
答案 1 :(得分:0)
我认为你最好克隆你的对象 - 这会复制整个事物,包括你想带来的任何事件和/或数据。
只是在你的小提琴上做了这件事,它确实有效。
$("#Button1").click(function() {
$newObject = $( $firstObject ).clone().css( 'left', '10px' ).appendTo( 'body' );
$( $newObject ).click( function() {
alert( 'hey there!' );
});
});