使用onmouseover时是否可以更改JavaScript中的函数名称?
在HTML DOM中,我们有类似以下内容:
#include <jni.h>
class A {
public:
A(JNIEnv * env, jobject obj) : env(env)
{
globalRef = env->NewGlobalRef(obj);
env->DeleteLocalRef(obj);
}
A(const A & a) : env(a.env)
{
// a global reference points to a global reference ?
// or two global references point to an object ?
globalRef = env->NewGlobalRef(a.globalRef);
}
~A()
{
env->DeleteGlobalRef(globalRef);
globalRef = nullptr;
}
private:
JNIEnv * env;
jobject globalRef;
};
// main entry
JNIEXPORT jint JNICALL JNI_OnLoad(JavaVM * jvm, void * reserved)
{
JNIEnv *env;
if (jvm->GetEnv((void**)&env, JNI_VERSION_1_4) != JNI_OK)
return JNI_ERR;
A a1(env, env->NewStringUTF("somthing"));
A a2(a1);
a1.~A();
// Can I continue to use 'a2' after 'a1' is destroyed ?
return JNI_VERSION_1_4;
}
在JavaScript中:
<img class="..." src="..." alt="..." onclick="click1()"> onmouseover="changeFunction()">
function changeFunction() {....}
我要触发的事件是这样的:
当鼠标悬停在图像上时,这将触发“ onmouseover”功能,该功能会更改“ onclick函数名称”,从而将名称从“ function click1(){...}”更改为“ function click2( ){...}。
function onclick1() {...}
*hovers over image* and triggers the Name change
这仍将保留其中的其他代码。它所做的只是更改函数的名称。
答案 0 :(得分:0)
这应该做您想要的:
<script>
function click1() {
console.log('click 1');
}
function click2() {
console.log('click 2');
}
function changeFunction(element) {
element.onclick = click2;
}
</script>
<img src="https://via.placeholder.com/350x65" onclick="click1()" onmouseover="changeFunction(this)">
将鼠标悬停在图像上时,它将onclick函数从click1
更改为click2
。