带有ajax内容的jquery绑定事件

时间:2015-10-21 20:33:49

标签: javascript jquery ajax

我们在静态html页面上加载了一个外部js文件,其中jQueryUI对话框通过单击按钮打开一个带有delete[]的URL。返回的ajax内容中包含少量new []个元素,所有jQuery.load()类型。我们需要将inputnumber事件绑定到数字输入,但是它没有绑定,因为keydown在元素在ajax结果的DOM之前发生。我们知道change,但是非常难以接线。我知道我们错过了一些简单的事情;有什么建议?

基本小提琴娱乐:http://jsfiddle.net/jbwebtech/wvufLket/

2 个答案:

答案 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加载的文件中(在它的末尾)。

对不起,我还没有发表评论。