我正在尝试使用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点击功能和另一个。然而,它不起作用,只是访问链接。
我已经检查了我的调试控制台并且没有显示任何错误,我的输入是正确的。我是否按错误的顺序订购了这些功能?这只是我能想到的。
答案 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'));
}
});
希望这会有所帮助:)