簡體   English   中英

JavaScript函數不會運行兩次

[英]Javascript function won't run twice

我有一個Jvascript函數,當單擊圖像時會運行php文件,並且單擊的圖像會更新。 我做了另一個功能,如果再次按下該功能可以將圖像改回原來的狀態。 但是在運行第一個功能后,如果再次單擊該圖像,則什么也沒有發生。 這些是我的功能:

<script>
    function upvote(id,bruger_id)
    {
        $.get("scripts/upvote.php?id="+id+"&bruger_id="+bruger_id, function() {
            // Update image
            $('.changeUp').attr('src', 'images/up.png');
            return;
        });
    }

    function noUpvote(id,bruger_id)
    {
        $.get("scripts/removevote.php?id="+id+"&bruger_id="+bruger_id, function() {
            // Update image
            $('.removeUp').attr('src', 'images/neutral_up.png');
            return;
        });
    }
</script>

這就是我所謂的函​​數。 顯示的基本圖像基於cookie。

<img class="changeUp" 
    onclick="upvote('.$feed[$loaded]["id"].','.$feed[$loaded]["bruger_id"].');" 
    src="images/neutral_up.png" width="20px">

我意識到錯誤是它只是再次調用相同的函數,因此圖像不會變回原來的樣子。 但是我該如何解決呢?

嘗試這個:

function upvote(id,bruger_id)
     {
         $.get("scripts/upvote.php?id="+id+"&bruger_id="+bruger_id, function() {
            $('.changeUp').attr('src', 'images/up.png');
            $('.changeUP').attr('onclick', 'noUpvote('.$feed[$loaded]["id"].','.$feed[$loaded]["bruger_id"].');');
         });
     }

    function noUpvote(id,bruger_id)
    {
         $.get("scripts/removevote.php?id="+id+"&bruger_id="+bruger_id, function() {
            $('.changeUP').attr('src', 'images/neutral_up.png');
            $('.changeUP').attr('onclick', 'upvote('.$feed[$loaded]["id"].','.$feed[$loaded]["bruger_id"].');');
         });
    }

我認為問題在於,在您的第一種方法upvote() ,您正在使用帶有changeUp的類選擇器,但從未使用jQuery更改img標簽的類,然后當您使用類選擇器removeUp調用第二種方法時,該類沒有什么,請嘗試以下操作:

function upvote(id, bruger_id)
{
  $.get("scripts/upvote.php?id="+id+"&bruger_id="+bruger_id, function() {
    $('.changeUp').attr('src', 'images/up.png');
    $('.changeUp').removeClass('changeUp').addClass('removeUp');
  }
}

您的img將是這樣的:

<img class="removeUp" ...>

您可以調用第二個方法並更改src屬性。

問候。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM