使用Jquery Ajax更改按钮数据工具提示文本(从

时间:2017-07-20 06:06:14

标签: javascript php jquery html ajax

这是我的HTML代码

<form class="addtowatchlistform" action="logo/insertwatchlist.php" method="POST">

    <input type="hidden" name="tmdb_id" value="'.$result[$x]["tmdb_id"].'"/>
    <button id="addtowatchlistbutton" type="submit" name="tmdb_id" value="'.$result[$x]["tmdb_id"].'" data-tooltip="ADD TO YOUR WATCHLIST" class="material-icons" style="color:'.$watchlisticoncolor.'">add_box</button>

</form>

   // Same form as above
<form class="addtowatchlistform" action="logo/insertwatchlist.php" method="POST">

    <input type="hidden" name="tmdb_id" value="'.$result[$x]["tmdb_id"].'"/>
    <button id="addtowatchlistbutton" type="submit" name="tmdb_id" value="'.$result[$x]["tmdb_id"].'" data-tooltip="ADD TO YOUR WATCHLIST" class="material-icons" style="color:'.$watchlisticoncolor.'">add_box</button>

</form>

Jquery代码:

<script>
$(".addtowatchlistform").submit(function(e) {
  var data = $(this).serialize();
  var url = $(this).attr("action");
  var form = $(this); // Add this line
  $.post(url, data, function(data) { 
    try {
        data = JSON.parse(data);
        $(form).children("button").css('color',data.watchlisticoncolor); 
        $(form).children("button").data('tooltip', data.addremove + " TO YOUR WATCHLIST"); // This line not working
    } catch (e) {
        console.log("json encoding failed");
        return false;
    }
});
  return false;
});
</script>

PHP文件insertwatchlist.php文件

$response = new \stdClass();
$response->addremove = "REMOVE";//you can get the data anyway you want(e.g database)
$response->watchlisticoncolor = "red";
die(json_encode($response));

输出PHP文件insertwatchlist.php文件

{"addremove":"REMOVE","watchlisticoncolor":"red"}

预期结果:

1.)当有人点击add_box按钮时,它会在不重新加载页面的情况下提交表单(这个工作正常)

2。)当有人点击add_box按钮时,它会color更改。 (工作正常)

3。)当有人点击add_box按钮时,data-tooltip=""值会发生变化。 (这个不起作用)

所以第3点不按预期工作,我的Jquery代码有什么问题?控制台选项卡为空,它不显示任何内容。

1 个答案:

答案 0 :(得分:1)

你的jquery代码应该是这样的

$(form).children("button").attr('data-tooltip',data.addremove + "TO YOUR WATCHLIST");

$('.material-icons').attr('data-tooltip',data.addremove + "TO YOUR WATCHLIST");