0

我正在将我网站上的 jQuery 从 1.4.2 升级到 jQuery v1.10.1。我正在将所有 .live 功能更改为 .on。现在我在更换其中一个时遇到了麻烦。

function tb_init(domChunk){
    $(domChunk).live('click', function(){
        var t = this.title || this.name || null;
        var c = $(this).parent().parent().find('.quotation').html();
        var a = this.href || this.alt;
        var g = this.rel || false;
        var o = $(this);
        tb_show2(t,c,a,g,o);
        this.blur();
        return false;
    });
}

我尝试将其更改为:

$(document).on("click", domChunk, function() {

和:

$(document).on("click", $(domChunk), function() {

但两者似乎都不起作用。domChunk 本身就是这样的选择器:"#myid li" 我得到的错误是:Uncaught TypeError: Object # has no method 'blur'

谢谢

4

2 回答 2

4

this是对 DOM 对象的引用,而不是对 jQuery 对象的引用。

试试这个:

$(this).blur();

或者:

$(this).trigger('blur');

或在您的代码中使用o而不是$(this)

于 2013-07-15T15:58:38.813 回答
3

我可能是错的,但是您是否尝试过使用 $(this).blur() 而不是 this.blur?因为它是一个jQuery函数......

编辑:对不起,我在回答之前没有刷新页面

于 2013-07-15T16:02:58.777 回答