2012-06-04 28 views
0

这是一个特殊的情况。我有一个锚点标记,点击锚点标记,jquery插件中的函数就会执行。但是在某些页面上,我想通过单击锚标签来执行另一个JavaScript函数。这意味着,我的jQuery插件有一个为锚定标记定义的默认点击事件,我将在我的页面上为同一个锚点标记调用另一个函数来实现另一个点击事件。截至目前,只有一个点击事件触发替代另一个。我想出了一个解决方案,通过使用click()插件和mouseUp()来调用某些页面上的函数。用不同的代码块多次调用jQuery事件执行

但基本上我想了解是否有一种方法将逻辑组合到一个jQuery甚至在不同的地方,并期望它执行所有这些?

+0

你有对...的控制页面,并且您可能会将脚本放在单独的文件中,但是当页面加载时会沿着调用页面加载,click事件将触发脚本文件中定义的相同事件。你可以做的是检查脚本调用的页面,并将你的逻辑放在if..else下,否则我认为不可能覆盖该功能。 – MSUH

回答

1

有几种方法可以做到这一点,但总的来说,我建议你用某种id或class将你的锚点包装在父元素中。然后用它来确定要调用的内容。例如:

JS:

function doThis(event) { 

} 

function doThat(event) { 
    doThis(event); 
    // more code for doThat... 
} 

$('.home #nav a').click(doThis); 

$('.content #nav a').click(doThat); 

的HTML主页:

<body class="home"><div id="nav"><a href="#">nav 1</a><a href="#">nav 2</a></div></body> 

HTML其他页面:

<body class="content"><div id="nav"><a href="#">nav 1</a><a href="#">nav 2</a></div></body> 
+0

我的意思是,在一个地方只有doThis应该开火,并在其他地方这两个doThis和doThat应该开火。 – Amit

+0

我已经更新了答案。 – lucuma

+0

当我们对两个函数都有控制时,更新的答案有效。:)在我的例子中,一个函数是我无法修改的jQuery插件的一部分。但是你的解决方案是有效的.. :) – Amit