我有一个循环,它使用 jquery 生成大量输入文本字段。现在,当有人单击这些输入标签时,我想触发 stopPropagation 方法。我认为这个方法的工作原理是这样的:
event.stopPropagation()
Run Code Online (Sandbox Code Playgroud)
但问题是我想在输入标签的 onClick 属性上触发此方法。像这样:
$(handler).html('<input type="text" value="'+text+'" style="width:280px;" onClick=stopPropagation(); />');
Run Code Online (Sandbox Code Playgroud)
由于显而易见的原因,这不会起作用。我需要获取这次点击的事件对象。什么是更聪明的方法?
这很简单,只需将“event”关键字添加到 onClick 调用中,如下所示:
$(handler).html('<input type="text" value="'+text+'" style="width:280px;"
onClick=stopPropagation(event); />');
Run Code Online (Sandbox Code Playgroud)
然后在你的函数中:
function stopPropagation(event) { /* do work */ }
Run Code Online (Sandbox Code Playgroud)
或者你可以用 jQuery 的方式来做:
$('input').on("click", function(event) { /* do work */ });
Run Code Online (Sandbox Code Playgroud)
请记住,在内联函数上,就像单词 一样this,event是一个关键字,告诉 js 您的函数应该获取事件参数
最后你可以改变所有的加在一起:
var newInp = $("<input />").width(280).text(text);
$(handler).append(newInp);
newInp.on("click", function(e) { /* e is your event */ });
Run Code Online (Sandbox Code Playgroud)