这是我第一次询问StackOverflow,但我目前难以接受我正在创建的一些公司代码。它根本不接受.change()或绑定到keyup。我之前没有遇到任何问题,但它今天不再适用于我。查看我的代码,看看是否有任何可能导致问题的内容。
对格式化感到抱歉,我是新手。
var currentContent = "null";
var customeri = "";
var optionsi = "";
var equipmenti = "";
var picturei = "";
$(document).ready(function() {
$("#preview").hide();
$("#previewPane").hide();
$("#previewHeading").hide();
$(".uiFonts").click(function() {
var clickedID = $(this).attr("id");
if(clickedID !== null) {
$("#main").hide();
loadContent(clickedID);
}
});
$("#Equipment").bind('change keyup', function() {
equipmenti = $(this).val();
$("#preview").html('<br /><span class="reg">Customer Info<br /></span>'+customeri+'<br /><br /><span class="reg">Options<br /></span>'+optionsi+'<br /><br /><span class="reg">Equipment<br /></span>'+equipmenti+'<br /><br /><span class="reg">Picture:<br /></span><img src="'+picturei+'" />');
});
});
function loadContent(cID) {
$("#main").load(cID + ".html", function() {
$("#main").slideDown(1500);
$("#preview").fadeIn(1500);
$("#previewPane").fadeIn(1500);
$("#previewHeading").fadeIn(1500);
currentContent = cID;
});
}
包含textareas的.html文件如下:
<p><span class="reg">Customer Info - Name, Address, Phone, Email</span><br />
<textarea name="Customer Info" class="textAreas inputs" id="Customer"></textarea>
<br />
<br />
<span class="reg">Trailer Options</span>
<br />
<textarea name="Options" class="inputs textAreas" id="Options"></textarea>
<br />
<br />
<span class="reg">Trailer Equipment</span>
<br />
<textarea name="Equipment" class="inputs textAreas" id="Equipment"></textarea>
<br>
<br>
<span class="reg">Picture URL</span></p>
<input type="text" id="picture" class="inputs"></input>
我试图将它们绑定在一般情况下:
$(".inputs").change(function() {
customeri = $("#Customer").val();
optionsi = $("#Options").val();
//etc
答案 0 :(得分:1)
工作FIDDLE。为了确认,我添加了<div id='test'/>
,$("#Equipment").bind('change keyup', function(e) { $('#test').append(e.type);
并获取了密钥并按预期更改。
更新我认为您的问题出在其他地方,因为这些事件都在触发。 (您确实知道只有在textarea
使用不同的值后才会触发更改吗?)
答案 1 :(得分:0)
加载外部.html文件时,jquery无法定期访问它并对其应用操作。出现这个问题是因为在触发器$(document).ready中,它找不到.html中找到的id的链接,直到它被加载为止,如果你在文档之后调用外部.html它就找到它为时已晚准备就绪。
解决方法是在单独的jquery函数中包含.change,或者在文档加载完成之前加载.html。