【发布时间】:2016-01-24 03:22:01
【问题描述】:
请注意,这不是重复关闭: Event binding on dynamically created elements?
不久前,我还在为 Jquery 动态事件绑定而苦苦挣扎,但终于让它工作了。我使用的语法是:
$(document.body).on("change", "#registerF > input, #registerF > select", function () });
#registerF = 表单的 ID。
input, select = 元素。
不管你信不信,一切正常,我决定用一个变量更改我网站中的所有链接,以获得更好的可移植性。
曾经:
http://example.com/path/to/file.php
成为:
var host = "http://example.com";
host + '/path/to/file.php';
我的jquery动态元素触发突然消失了,所以我看了看。
我已将其更改为:
$(document.body).on("change", "#registerF * ", function () {});
它正在工作,但以一种奇怪的方式。
事件被触发,这就是奇怪的地方:
$(document.body).on("change", "#registerF * ", function () {
var field_id = ($(this).attr("id")); <--- is defined
alert(field_id); <-------------------- display the id
var container = ['#' + field_id + "_ck", '#' + field_id + '_err'];
var data_type = ($(this).attr("data-type"));
var value = document.getElementById(field_id).value; <--- ERROR point here
alert(value) <----- display the good value as being defined
脚本正在运行。这些值被解释为应有的值,但我在控制台中收到此错误
未捕获的类型错误:无法读取 null 的属性“值”
(匿名函数)@Script.js:254
m.event.dispatch@jquery.js:4670
r.handle@jquery.js:4338
我的 Jquery 版本来自: https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js
已将其更改为 1.12 并且仍然相同。
所以我完全被吹到这里了。如果未定义,如何发送值!?
【问题讨论】: