单击功能在jQuery中不起作用

时间:2018-08-20 12:21:21

标签: javascript jquery

在以下代码中,当有人单击“卖出”按钮(第一个td)但单击功能不起作用时,我想运行一个功能。它说运行功能未定义。

function runfunction() {
  alert("success");
}

sendRequest(); //call function
function sendRequest() {
  $.ajax({
    type: "POST",
    url: '<?php echo site_url("ajax/ajax_buybtc"); ?>',
    success: function(result) {
      var jsonResult = JSON.parse(result);
      $(".tab1 tr.tr1").remove();
      jsonResult.forEach(function(data) {
        var newTr = ""; // I delete the value to avoid double tr declaration
        newTr +=
          '<tr class="tr1"> <td onclick="runfunction()" style="text-align:center;"><a><span  class="label label-warning">Sell</span></a></td>';
        newTr += "<td id='xbtc " + data.xbtc + "'>" + data.xbtc + "</td>";
        newTr += "<td id='xbtc " + data.rate + "'>" + data.rate + "</td>";
        newTr += "<td id='xbtc " + data.xpkr + "'>" + data.xpkr + "</td>";
        newTr += "</tr>";
        $(".tab1 > tbody:last-child").append(newTr);
      });

      setTimeout(function() {
        sendRequest(); //this will send request again and again;
      }, 4000);
    },
  });
}

3 个答案:

答案 0 :(得分:1)

您需要将onclick="runfunction()"更改为onclick="runfunction"。 当前发生的是执行runfunction,并将其返回值绑定到onclick事件。您希望函数本身被绑定,而不是它的返回值。

答案 1 :(得分:0)

newTr += '<tr class="tr1"> <td onclick="runfunction()" style="text-align:center;"><a><span  class="label label-warning">Sell</span></a></td>';

移动点击以跨越标记

newTr += '<tr class="tr1"> <td style="text-align:center;"><a><span onclick="runfunction()"  class="label label-warning">Sell</span></a></td>';
  

https://codepen.io/bot_3310/pen/JajYyY

答案 2 :(得分:0)

在向td添加类(此处添加了“ td-click”)并从td中删除onclick属性后,尝试添加click函数

$(".tab1").on("click", ".td-click", function(){
   alert("success");
})