如何在执行此特定onclick事件时执行JavaScript函数?

时间:2015-04-09 13:45:29

标签: javascript jquery html javascript-events xhtml

我不是那么喜欢JavaScript而且我有以下问题。

在JSP页面中,我有一些像这样的“链接”:

<tr onmouseout="Javascript: this.style.background='#EAEFFF'; this.style.color='#003399';" onmouseover="Javascript: this.style.background='#003399'; this.style.color='#FFFFFF'; this.style.cursor='hand';" style="background-color: #EAEFFF;" onclick="Javascript: document.location.href='edi.do?serv=4.1';">
    <td>
        <!--A HREF="edi.do?serv=4.1" class="linkBlue" onMouseOver="self.status='Comunicazioni'; return true"-->
        Comunicazioni
    </td>
</tr>

正如您在前面的代码段中看到的那样,链接尚未通过经典 a href 实现,但取而代之的是,它使用此表达式由JavaScript完成:

onclick="Javascript: document.location.href='edi.do?serv=4.1';"

所以,如果我说的是错误的断言,请更正,我认为(当用户点击 tr 时) Javascript:,它会执行以下JavaScript操作打开链接。这是正确的解释吗?

它有效,但我的问题是,在做之前,我必须执行一个特定的 loadingPopUp() JavaScript函数定义到

<script type="text/javascript">...</script>

我页面的部分。所以我的问题是:如何在 Javascript:document.location.href ='edi.do?serv = 4.1'; 之前执行 loadingPopUp()功能 onclick 事件?

TNX

2 个答案:

答案 0 :(得分:1)

onclick事件更改为:

onclick="changeLocationTo('edi.do?serv=4.1')"

创建一个新的js函数:

function changeLocationTo(newLocation)
{
   loadingPopUp();

   // you may add an timeout here or to handle a popup action like closing it

   document.location.href = newLocation;
}

答案 1 :(得分:0)

是的,你的断言是完全正确的。但是我认为如果你在更改url之前调用你的函数那么这将是不正确的方法,因为第二个函数将在你的 loadingpopup 函数之后立即执行并将用户重定向到不同的页面,所以我认为你的目的是打开弹出窗口将无法完成。

所以试试这个

方式1:如果您想加载弹出窗口并立即重定向用户

function fnOpenNewLink(){
    loadingPopUp();
    document.location.href='edi.do?serv=4.1';
}

方式2:如果您想加载弹出窗口,然后根据您的要求重定向用户。

function fnOpenNewLink(){
    loadingPopUp(function(){
        document.location.href='edi.do?serv=4.1';
    });
}

function loadingPopUp(callback){

    //your stuff

    //when everything is done, just call the callback
    callback();
}