Onclick href事件不起作用

时间:2015-02-04 16:42:22

标签: javascript jquery

我正在尝试使用onclick事件获取href的值以将其添加到输入中,这是我正在使用的内容:

$(document).ready(function()
{
  $(".sellorderprice").click(function(e)
  {
    e.preventDefault();
    $('#buyprice').val($(this).attr('href'));
    $(this).attr('href');
    return false;
  });
  $(".sellorderamount").click(function(e)
  {
    e.preventDefault();
    $('#buyamount').val($(this).attr('href'));
    $(this).attr('href');
    return false;
  });
selldone();
sellupdate();
});

function selldone(){
setTimeout(function(){ sellupdate(); selldone(); },5000);
}
function sellupdate()
{
$.getJSON("<?php echo URL;?>/dashboard/sellorders", function(data){
    $("#sellingorders").find('tbody').empty();
    $.each(data.result, function(){
    $("#sellingorders").find('tbody').append("<tr><td><a href=\"#"+this['price']+"\" class='sellorderprice\'>"+this['price']+"</a></td><td><a href="+this['price']+" class=\"sellorderamount\">"+this['amount']+"</a></td><td>"+this['cost']+"</td></tr>");
    })
});
}

以下代码,将数据附加到表,这是有效的,我将价格和金额包装在hrefs中,这样我就可以启动sellorderprice点击功能和另一个。然而,它不起作用,只是访问链接。

我已经检查了我的调试控制台并且没有显示任何错误,我的输入是正确的。我是否按错误的顺序订购了这些功能?这只是我能想到的。

1 个答案:

答案 0 :(得分:2)

问题在于绑定事件处理程序的方式。

$(".sellorderprice").click(function(e){

  });
  $(".sellorderamount").click(function(e){

  });

查看代码,您可以动态创建这些链接并附加到某个表格。但click()仅在您定义这些点击处理程序时已经存在于DOM中的元素时才有效。因此,您需要在委派模式中使用on()(在JQuery 1.7+中),如此

     /* Assuming sellingorders is a static element, if this is also 
  some dynamically added element, change main selector to closest static 
  parent (or) document if there's none*/

    $("#sellingorders").on('click','.sellorderprice, .sellorderamount',function(e){
          e.preventDefault();
          if(this.className == 'sellorderprice'){
              $('#buyprice').val($(this).attr('href'));
          }else{
              $('#buyamount').val($(this).attr('href'));
          }
    });

希望这会有所帮助:)