我们在静态html页面上加载了一个外部js文件,其中jQueryUI对话框通过单击按钮打开一个带有delete[]
的URL。返回的ajax内容中包含少量new []
个元素,所有jQuery.load()
类型。我们需要将input
和number
事件绑定到数字输入,但是它没有绑定,因为keydown
在元素在ajax结果的DOM之前发生。我们知道change
,但是非常难以接线。我知道我们错过了一些简单的事情;有什么建议?
答案 0 :(得分:-1)
在jQuery .on()
documentation: http://api.jquery.com/on/#direct-and-delegated-events内部尚未完全解释它并没有太难理解
http://learn.jquery.com/events/event-delegation/
$(staticElementParent).on("event1 event2", dynamicElement, function(){ /*stuff*/ });
在您的具体案例中:
<强> fiddle demo 强>
var ajax_content = '<input type="number"><br><input type="number"><br><input type="number"><br><input type="number">';
$(function () {
console.log('jquery ready');
$("body").on('input', 'input[type=number]', function (event) {
console.log('on() input successful');
});
// "AJAX" ;)
$('button').click(function(){
$('#ajax_container').html(ajax_content);
})
});
与往常一样,阅读文档
答案 1 :(得分:-1)
你能不能把你的绑定放在.load()函数的回调中?或者,如果您不能(我不确定),您可以更改回调中的变量并检查它是否已加载到绑定中。
或者你可以将bind放在用jquery加载的文件中(在它的末尾)。
对不起,我还没有发表评论。