所以我在jQuery中制作这个东西,如果用户点击一个按钮就会出现div并要求用户输入一些音符(基本上是一个便签特征)。
HTML和CSS正确完成,唯一的问题是jQuery无法正常工作:
$(document).ready(function() {
$("#top-tabs ul li").hover(function() {
$(this).find("ul>li").stop().fadeToggle(400);
});
$("#submitpnote").on("click", function() {
$("body").append("<div id='pnoteprompt'><input id ='input-pnote'type='text' placeholder='your note title'></input><input id ='input-pnote-p'type='text' placeholder='your note'></input><button id=confirmpnote>confirm note</button></div>");
$("#pnote-prompt").fadeTo(100, 1);
});
$("#confirmpnote").on("click", function() {
var $pnotetitle = document.getElementById("input-pnote").value;
var $pnotep = document.getElementById("input-pnote-p").value;
$("#pnotes-list").append("<div class='pnote-title'><li>" + $pnotetitle + "<br>" + $pnotep + "</li></div>");
$("#pnoteprompt").remove();
});
});
js jQuery文件正确链接。它只是在submitpnote函数(第二个)中,div没有附加。我点击按钮,屏幕上没有任何内容。我尝试了一些prompt()调试器并且该方法正在运行,但div似乎没有附加。
有谁知道为什么会这样?谢谢!
答案 0 :(得分:1)
我认为确认是动态创建的内容,因此您无法执行$(#confirmnote),因为在代码执行时不会存在。
对于动态创建的内容,请使用:
(document).on('click', 'selector', function(){
//to stuff
});
选择器将是#confirmpnote例如
答案 1 :(得分:0)
您似乎正在动态添加具有submitpnote
按钮的容器,因此您必须使用.on()
添加偶数处理程序
$('body').on('click', '#submitpnote', function(e){
$(e.delegateTarget).append("<div id='pnoteprompt'><input id ='input-pnote'type='text' placeholder='your note title'></input><input id ='input-pnote-p'type='text' placeholder='your note'></input><button id=confirmpnote>confirm note</button></div>");
$("#pnote-prompt").fadeTo(100, 1);
});