[英]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.