使用JQuery获取onclick()事件的字符串值

Mar*_*lec 6 javascript jquery

想知道是否有这样做的好方法,以为我会发布到SO社区......

有一个第三方网页,我无法控制它如何呈现,但它们允许我添加JQuery.

使用JQuery,我在页面的侧面创建一个导航菜单,它将是一个链接列表.我从页面上现有的onclick事件中获得这些链接的onclick事件,但是当我这样做时:

var linkLoc = $('#theLink').attr("onclick");
Run Code Online (Sandbox Code Playgroud)

linkLoc返回:

function onclick(event) {
  handleJumpTo("com.webridge.entity.Entity[OID[E471CB74A9857542804C7AC56B1F41FB]]", "smartform");
}
Run Code Online (Sandbox Code Playgroud)

而不是我期望的:

handleJumpTo("com.webridge.entity.Entity[OID[E471CB74A9857542804C7AC56B1F41FB]]", smartform");
Run Code Online (Sandbox Code Playgroud)

我认为JQuery正试图获取绑定事件,但我需要实际的Javascript标记,因为我正在动态创建HTML.我想我可以将"函数onclick(event){"排除在外,但看起来有点像hacky.

我可以通过优雅的方式获得onclick标记吗?

Roc*_*mat 2

的类型$('#theLink').attr("onclick")是一个函数,因此您可以在将事件绑定到链接时使用它。

var linkLoc = $('#theLink').attr("onclick");
$('a#link1').live('click', linkLoc);
Run Code Online (Sandbox Code Playgroud)

示例: http: //jsfiddle.net/BdU6f/

如果需要,您还可以在点击处理程序中运行其他代码:

var linkLoc = $('#theLink').attr("onclick");
$('a#link1').live('click', function(e){
    // Code...
    linkLoc(e);
});
Run Code Online (Sandbox Code Playgroud)

示例: http: //jsfiddle.net/BdU6f/1/