2017-06-06 67 views
0

是否有可能,做或我是在這個完全錯誤的方式。你可以觸發一個jQuery事件從一個PHP回聲

我從PHP函數中迴應出一塊html。裏面的塊是這條線的位置:

<div class='community-post-like-button' id='likeClick' data-value='{$id}'>Like Me</div> 

然後我有一些jQuery來觸發此元素上點擊時應該觸發。

jQuery的我已經是:

<script> 
$(document).ready(function() { 
    $('#likeClick').click(function(){ 
    var id = $('#likeClick').data('value'); 
    $.ajax({ 
    url: '../resources/handlers/like.php', 
    type: 'POST', 
    data: {id: id}, 
    cache:false, 
    success: function(data) { 
     $('#likeNumber').html(data); 
    } 
    }); 
}); 
}); 
</script> 

我已經把我的jQuery在我的結果遙相呼應的頁面裏面,我也把它放在PHP函數內部,但沒有地方工作。該函數可以工作,如果我不回顯線。

/***** UPDATE *****/

我沒有提到我是呼應了是通過AJAX頁面加載後。 我已經去了Bikash Waiba的答案,因爲它解決了我遇到的問題,直接解決了通過AJAX返回結果的問題。

+1

您正在使用的ID,請確保該ID不會在同一頁上重複。嘗試在你的事件中使用類,如果這是你的情況。 – Prateek

+0

好點!它是while循環的一部分,所以我將大量的結果都包含在同一個id中。我可以建議我最初使用這個類作爲選擇器,問題仍然是一樣的。 –

+0

你確實使用了函數,這很好。但也應該使用dom事件綁定。 https://jsfiddle.net/azmgdqc4/ – Prateek

回答

1

從PHP函數相呼應的HTML是絕對OK,如果你通過在這種情況下AJAX動態頁面加載後回聲塊,你可以做這樣的事情

$(document).on("click",'#likeClick',function(e){ 
    var id = $('#likeClick').data('value'); 
    $.ajax({ 
    url: '../resources/handlers/like.php', 
    type: 'POST', 
    data: {id: id}, 
    cache:false, 
    success: function(data) { 
     $('#likeNumber').html(data); 
    } 
    }); 
}); 
+0

這正是我正在做的,被回聲的代碼是通過ajax。知道這真的很有趣,我感謝你的答案! –

+0

不客氣! –

1

您可以將它變成函數,並使用onclick=""屬性來調用函數。

<script> 
function request(id) { 
    $.ajax({ 
     url: '../resources/handlers/like.php', 
     type: 'POST', 
     data: {id: id}, 
     cache:false, 
     success: function(data) { 
     $('#likeNumber').html(data); 
     } 
    }); 
} 
</script> 
<div class='community-post-like-button' id='likeClick' data-value='test' onclick="request(this.id);">Like Me</div> 
+0

你可以直接傳遞id到你不需要var id = $('#likeClick')。data('value');' – Omi

+0

完美的作爲一個函數,謝謝你解釋這種方式的作品! –

1

如果你有幾個問題就出現了行必須使用類屬性,而不是#likeClick情況下的id屬性,請使用類.community-post-like-button ids不應該在同一個HTML文檔中重複使用。 你的代碼看起來像這樣。

HTML

<div class='community-post-like-button' id='likeClick' data-value='{$id}'>Like Me</div> 

的JavaScript

$(document).ready(function() { 
     $('.community-post-like-button').click(function(){ 
     var id = $(this).data('value'); 
     $.ajax({ 
     url: '../resources/handlers/like.php', 
     type: 'POST', 
     data: {id: id}, 
     cache:false, 
      success: function(data) { 
      $('#likeNumber').html(data); 
      } 
     }); 
     }); 
    }); 
相關問題