Javascript:从Dynamicly创建的实例调用嵌套函数
我试图创建同一函数的多个实例,但希望保留它们自己的属性。因此,当在第一个实例中创建按钮时,该按钮的onclick事件应指向同一个第一个实例中的函数。但是(这个)关键字在这种情况下不起作用。我知道还有别的事要做 JS:Javascript:从Dynamicly创建的实例调用嵌套函数,javascript,jquery,function,oop,object,Javascript,Jquery,Function,Oop,Object,我试图创建同一函数的多个实例,但希望保留它们自己的属性。因此,当在第一个实例中创建按钮时,该按钮的onclick事件应指向同一个第一个实例中的函数。但是(这个)关键字在这种情况下不起作用。我知道还有别的事要做 JS: 函数更新IAS(mac、realName、displayName){ var prevHtml=jQuery(“#”+mac).html(); var formHtml=“”; formHtml+=“应用”; jQuery(“#”+mac).html(formHtml); var
函数更新IAS(mac、realName、displayName){
var prevHtml=jQuery(“#”+mac).html();
var formHtml=“”;
formHtml+=“应用”;
jQuery(“#”+mac).html(formHtml);
var apply=function(){
警报(mac);
};
}
HTML:
设备1
装置2
JS Fiddle:而是使用jQuery事件处理程序和
数据-*
属性来存储数据,如
jQuery(函数($){
$('.editor')。在('单击','.display',函数()上{
$(this).replace为(“+”Apply”);
});
$('.editor')。在('click','button.btn',function()上{
警报($(this).最近('.editor')。数据('name'));
});
})
设备1
装置2
而是使用jQuery事件处理程序和数据-*
属性存储数据,如
jQuery(函数($){
$('.editor')。在('单击','.display',函数()上{
$(this).replace为(“+”Apply”);
});
$('.editor')。在('click','button.btn',function()上{
警报($(this).最近('.editor')。数据('name'));
});
})
设备1
装置2
我对您的代码做了一些更改
<div id="id2">
<div onclick="updateAlias('id1','android-8112ad950b0bca36','device 1')">Device 1</div>
</div>
<div id="id2">
<div onclick="updateAlias('id2','android-8112ad950b0bca36','device 2')">Device 2</div>
</div>
设备1
装置2
JS:
函数更新IAS(mac、realName、displayName)
{
var prevHtml=jQuery(“#”+mac).html();
var formHtml=“”;
formHtml+=“应用”;
jQuery(“#”+mac).html(formHtml);
jQuery(“#”+mac+“-apply”)。单击(函数(){
警报(mac);
});
}
我对您的代码做了一些更改
<div id="id2">
<div onclick="updateAlias('id1','android-8112ad950b0bca36','device 1')">Device 1</div>
</div>
<div id="id2">
<div onclick="updateAlias('id2','android-8112ad950b0bca36','device 2')">Device 2</div>
</div>
设备1
装置2
JS:
函数更新IAS(mac、realName、displayName)
{
var prevHtml=jQuery(“#”+mac).html();
var formHtml=“”;
formHtml+=“应用”;
jQuery(“#”+mac).html(formHtml);
jQuery(“#”+mac+“-apply”)。单击(函数(){
警报(mac);
});
}
在文档中出现重复的id
在处
即使我将其更改为id1-id2,问题仍然相同。在文档中出现重复的id
在
处即使我将其更改为id1-id2,问题仍然相同。感谢@arun-p-johny,使用jQuery它将起作用。但我只是好奇是否有任何核心javascript方法也可以工作?谢谢@arun-p-johny,使用jQuery它会工作的。但只是好奇是否有任何核心javascript方法也可以工作?NP@AmitShah。如果工作正常。将其标记为正确答案。NP@AmitShah。如果工作正常。把它标为正确答案。
<div id="id2">
<div onclick="updateAlias('id1','android-8112ad950b0bca36','device 1')">Device 1</div>
</div>
<div id="id2">
<div onclick="updateAlias('id2','android-8112ad950b0bca36','device 2')">Device 2</div>
</div>
function updateAlias(mac, realName, displayName)
{
var prevHtml = jQuery("#" + mac).html();
var formHtml = "<input type='text' id='alias-" + mac + "' value='" + jQuery.trim(displayName) + "' />";
formHtml += "<button id='"+mac+"-apply' class='btn btn-primary btn-xs' >Apply</button>";
jQuery("#" + mac).html(formHtml);
jQuery("#"+mac+"-apply").click(function() {
alert(mac);
});
}