2011-03-04 62 views
1

我有以下腳本:這個通過函數?

$('#element_1').live('click', function() { 
    function_1(this) 
}); 

function function_1(that) { 
    that = that.attr("id").split('_'); 

    alert(that[0]); 
    alert(that[1]); 
} 

我試圖分裂的「本」的id屬性,但我得到一個錯誤:

對象不支持此屬性或方法。

但是,當我在click事件中直接做同樣的事情時,例如

$('#element_1').live('click', function() { 
    var that = $(this).attr("id").split('_'); 

    alert(that[0]); 
    alert(that[1]); 
}); 

如何獲得頂級版本的腳本工作?

回答

3

this使用jQuery:

function_1($(this)); 

(請注意,正確的在第二個版本做到這一點,這就是它工作的原因)。


什麼更好的是訪問id jQuery的:

that = that.id.split('_'); 
0
$('#element_1').live('click', function() { 
    function_1(this) 
}); 

    function function_1(that) { 
    that = $(that).attr("id").split('_'); 

    alert(that[0]); 
    alert(that[1]); 
} 

只需添加$爲that,還是先改線function_1(this)function_1($(this))

0

你忘了包this jQuery中的第一個例子。

重寫

$('#element_1').live('click', function() { 
    function_1(this) 
}); 

$('#element_1').live('click', function() { 
    function_1($(this)); 
}); 

,它應該工作。

一個普通的HTML元素對象沒有attr方法(它特定於jQuery);因此錯誤。

0

這樣的調用function_1 function_1($(this));