我需要一些帮助来理解jquery的工作原理。我正在为我的游戏使用awesomium ui,我在应用程序中调用jquery对象的函数时遇到问题。这是我的问题。
假设我有这样的代码
<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 :(得分:2)
要从jQuery选择器访问底层的“真正的”DOM对象,您需要使用get function - 我不知道Awesomium,但它从您的代码中看起来就像您需要的那样。不要忘记jQuery选择器可以匹配多个项目,因此get()返回一个数组,而不是单个对象。
所以第一个参数是这样的: -
jsobject: $('#test').get(0);
答案 1 :(得分:1)
我不知道Awesomium但是jsobject可能应该是全局变量的名称,而不是表达式。您的代码应如下所示:
window.awe_jsobject = $('#test');
jsobject: "awe_jsobject"