似乎应该有更好的方法来编码:

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/

10-12 12:58
查看更多