我有一个大问题。我试图附加一个新的div,但它不起作用。
我的功能是:
jQuery(function($){
var $meter = $('#analog_meter'), count = 1;
$('#addanalog').click(function(e){
e.preventDefault();
if(count > 2){
alert("That's enough already!");
return;
}
count ++;
($meter.parent()).append($meter.clone());
});
});
我绘制模拟仪表的代码示例是:
<div id="add" style="visibility:hidden;" style="display:inline-block;"><a id="addanalog" href="#" Onclick="add_new_analog();">ADD NEW ANALOG</a></div>
<div id="plot_analog">
<div id="analog_meter" name="analog_meter">
<!-- less information -->
<div id="content-two" style="visibility:hidden;">
<div id="chart1" class="jqplot-target"></div>
<a id="div-one" href="#" Onclick="mostra1();"><? echo LABEL_MORE_INFORMATION ?></a>
<a id="div-two" href="#" Onclick="mostra2();"><? echo LABEL_LESS_INFORMATION ?></a>
</div>
<!-- more information -->
<div id="content-one" style="visibility:hidden;">
<div id="chart2" class="jqplot-target"></div>
<a id="div-one" href="#" Onclick="mostra1();"><? echo LABEL_MORE_INFORMATION ?></a>
<a id="div-two" href="#" Onclick="mostra2();"><? echo LABEL_LESS_INFORMATION ?></a>
</div>
</div>
</div>
每次点击ADD NEW ANALOG时,都会发生两次模拟测量。 像这样:
我想要的是当点击添加时,只绘制一个模拟仪表。
答案 0 :(得分:2)
您可以尝试删除
Onclick="add_new_analog();"
看到你通过jQuery挂钩click事件。如果add_new_analog()添加了一个模拟,并且你的jQuery函数添加了一个模拟,你最终会添加2。
编辑:@ T.J。克劳德对ids有一个很好的观点。你应该确保它们在克隆时保持独特。
答案 1 :(得分:0)
您已将两个点击处理程序添加到<a id="addanalog" href="#" Onclick="add_new_analog();">ADD NEW ANALOG</a>
首先在JavaScript文件中添加onclick
标记中的处理程序和“codebehind”中的第二个处理程序:
$('#addanalog').click(function(e){ // register second click handler
e.preventDefault();
if(count > 2){
alert("That's enough already!");
return;
}
count ++;
($meter.parent()).append($meter.clone());
});
我认为最简单的方法是删除其中一个。