为什么jquery .bind()在这种情况下不起作用?

时间:2013-10-17 09:58:01

标签: jquery bind

使用jquery的bind方法有什么问题?

工作

var Element = htmlBody.find('tag');
$(Element ).bind('DOMSubtreeModified', function(event) {
    console.log(Element[0]);
    //code come here
});

不工作

var obj = {};
var tags = ['tag1', 'tag2'];
for (index in tags) {
    obj[index] = htmlBody.find(tags[index]);
    $(obj[index]).bind('DOMSubtreeModified', function(event) {
        console.log(obj[index][0]);
        //  code doe not come here
    });  
}

2 个答案:

答案 0 :(得分:1)

尝试以下方法:

var obj = {};
var tags = ['tag1', 'tag2'];
$.each(tags, function(idx, item) {
    obj[idx] = htmlBody.find(tags[idx]);
    $(obj[index]).bind('DOMSubtreeModified', function(event) {
        console.log(item);
    });  
});

答案 1 :(得分:1)

建议使用on功能代替bind()。您还需要使用for循环遍历元素。

var obj = {};
var tags = ['tag1', 'tag2'];
for (var i = 0; i < tags.length;i++) {
    obj[i] = htmlBody.find(tags[i]); //not exactly sure what htmlBody.find does
    var item = obj[i][0];
    $(obj[i]).('DOMSubtreeModified', function(event) {
        console.log(item);
    });  
}