2011-12-21 96 views
0

我需要一些幫助來理解jQuery如何工作。我正在爲我的遊戲使用awesomium ui,並且在從我的應用程序調用jquery對象的函數時遇到問題。這是我的問題。jquery如何處理js對象

假設我有這樣的

<div id="test"> 
    <span>Hello World</span> 
</div> 

代碼,我觸發事件

$('#test').trigger('click'); 

這確實

$('#test').on('click',function() { $(this).css('color','red'); } 

這更是一個JavaScript的問題,所以我我要給出我正在使用的應用程序功能的一點點背景。 Awesomium,具有功能

awe_webview_call_javascript_function 

將參數作爲javascript對象,對象內的函數名稱和函數的參數。所以,我傳遞參數

jsobject: "$('#test')" 
function: "trigger" 
parameters: "click" 

程序不工作,我知道原因是JS對象。所以,我的問題是,jQuery如何將它們的元素實現爲js對象?我怎樣才能訪問它?

編輯:我找到了解決問題的辦法。我創建了一個全球性的功能觸發和jQuery對象作爲參數:

function trigger(jobj, e, params) { 
    $(jobj).trigger(e,params); 
} 

感謝, 卡西姆

+0

謝謝大家的幫助! – Gasim 2011-12-21 11:26:57

+0

您可以提供解決方案作爲答案。 – 2011-12-21 11:31:33

回答

2

從jQuery選擇訪問底層的「真實」的DOM對象,你需要使用get function - 我不知道Awesomium,但它看起來像你的代碼,就像這是你所需要的。不要忘記,jQuery選擇器可以匹配多個項目,所以get()返回一個數組,而不是單個對象。

所以第一個參數是這樣的: -

jsobject: $('#test').get(0); 
+0

+1確實。注意到'jQuery'對象封裝了所有選定的元素,'jQuery'實例幾乎總是從其任何函數返回(例外是一些標量函數),這樣可以將jQuery調用鏈接在一起流利的操作。 – HackedByChinese 2011-12-21 11:05:25

+0

它非常有意義,但由於某種原因它沒有工作。 – Gasim 2011-12-21 11:25:53

1

我不知道Awesomium但可能jsobject應該是一個全局變量的名稱,而不是一個表達式。你的代碼應該是這樣的:

window.awe_jsobject = $('#test'); 

jsobject: "awe_jsobject" 
+0

你的版本也沒有工作。我不知道。我打算再研究一下。 – Gasim 2011-12-21 11:26:47