嘿所有我将一个表单附加到页面上点击表单上有一些文本框我需要添加事件列表器就像在按键上但函数dosent工作不知道问题在哪里功能在各处工作得很好但不是这个表格是代码。
附加表格
function activityCHART(thisobj){
var theidis=$(thisobj).attr("id");
$("#FULL_FADE").fadeIn();
$.ajax({
type: 'post',
url: 'newpage.php',
data:{'actde':theidis},
success: function(dataa){
$("#the_APPEDEDr5").empty().append(dataa);
}});}
新页面存在此文本框,还有一些文本区域
<input type="text" name="deptname" placeholder="department name" id="detp_names09o" class="TEXTNAME_o909ioi"/>
添加此事件列表器
$('#detp_names09o').keypress(function (e) {
alert('ok');});
这些是一些脚本链接
src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
我认为有一些脚本链接问题
当我这样做的时候会出现警告onkeyup =“thisisfun();” function thisisfun(){alert('ok'); }
答案 0 :(得分:1)
您应该使用 live(), delegate()或 on()将事件侦听器附加到动态添加的DOM元素。 bind()和keypress()不适用于动态添加到DOM的元素 [请参阅this]
$('#detp_names09o').live("keypress",function (e) {
//do some stuff
});
.on()主要是语法糖,它可以模仿.live()或.delegate(),具体取决于你如何调用它。
$('#detp_names09o').on("keypress",function (e) {
//do some stuff
});
此外,您已指定了两个不同的版本的jQuery。尽管CDN确实比本地引用的库有一些优势,但它们可能会破坏您的代码。 如果这就是您引用本地jQuery文件(以及CDN版本)的原因,您可以考虑查看CDN fallbacks。在任何一种情况下,您都应该注意使用的版本。
干杯!
答案 1 :(得分:0)
将事件附加到动态添加的元素
尝试使用'bind'
绑定事件$('#detp_names09o').bind("keypress",function (e) {
alert('ok');
});
或使用'on'
$('#detp_names09o').on("keypress",function (e) {
alert('ok');
});
此外,您的页面中不需要两个版本的jquery,同时也要确保此ID不重复
答案 2 :(得分:0)
在元素中使用onkeyup,..属性并像这样调用函数
<input type="text" name="deptname" placeholder="department name" id="detp_names09o" class="TEXTNAME_o909ioi" onkeyup="functionName()"/>
在javascript中
function functionName(){
//your code
}
答案 3 :(得分:0)
首先,你应该决定你想要使用什么,keyup或keypress?例如,如果要使用keyup并使用大于1.7的jquery版本,请使用
$(document).ready(function () {
$('#element').on("keyup",function () {
alert('result ok');
});
});
否则你可以使用
$(document).ready(function () {
$('#element').live('keyup', function() {
alert('result ok');
});
});
确保您正在调用工作脚本(检查脚本链接),尽量不要使用重复的元素ID而是使用类并避免使用内联使用javascript。快乐的编码!