似乎应该有更好的方法来编码:
HTML 片段:
<label onclick="addstuff(this)" id="label_id">Hello</label>
JS/jQuery 片段:
function addstuff(field){
$('#'+field.id).before('<div>Just a random element being added…</div>');
}
当字段已经被传入时,我不喜欢我在 Javascript 中通过 $('#'+field.id) 引用我的字段。似乎应该有另一种方法来使用字段对象在 jQuery 中引用字段传入,在我看来这应该更有效率,但我没有运气弄清楚。任何意见是极大的赞赏。
最佳答案
这是一种更简单的方法。
$('#label_id').click(addstuff);
function addstuff(){
$(this).before('<div>Just a random element being added…</div>');
}
this
指的是 event
处理函数中的标签。您还可以在此实例中使用传入的事件对象。 event
对象被隐式传递给函数作为第一个参数的参数function addstuff(event){
$(event.target).before('<div>Just a random element being added…</div>');
}
您还可以使用内联匿名函数
$('#label_id').click(function (){
$(this).before('<div>Just a random element being added…</div>');
});
但是如果您想在多个位置使用该函数,我会坚持使用命名函数。当您调试时,它也有帮助,因为您可以在逐步执行时获得函数的名称。
在元素加载到 DOM 后,您必须将事件处理程序绑定(bind)到元素。通过将您的代码放在页面底部的标记之后,或使用
$(document).ready(function() { /* code here */ });
关于jQuery 初学者 - 引用传递给 JS 函数的 HTML 对象,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2209557/