[英]plain JavaScript equal to jquery $(this)
我目前有jQuery链接代码。 单击所选对象中的链接时,将打开对话框。
$('.dialog_link_add').click(function(){
var row_id = $(this).parent().parent().attr('id');
return false;
}
因为对话框总是使窗口滚动到顶部(在Internet Explorer中),所以我已经找到解决方案,方法是使用纯JavaScript并以旧的流行方式实现方法。
onclick="function_call(this);return false;"
...但是它不起作用。 我现在如何发送“ this”参数等于jQuery $(this)?
这个问题的答案,你居然问的问题是:的原始相当于$(this)
是this
,而是你给予的形式onclick
,这将是你传递到你的函数的参数。 如果愿意,您可以继续在该函数中使用jQuery,只接受该元素作为参数(因为这就是传递它的方式),然后在其上使用$()
:
function function_call(elm) {
var row_id = $(elm).parent().parent().attr('id');
// ...
}
不过要完全原始DOM ::
function function_call(elm) {
var row_id = elm.parentNode.parentNode.id;
}
有关各种DOM规范和HTML5 API的更多信息:
但是 :您可以通过以下方式防止jQuery版本中的滚动:
$('.dialog_link_add').click(function(){ var row_id = $(this).parent().parent().attr('id'); return false; // <<============= });
在jQuery处理程序中, return false
做两件事:
阻止默认操作(因此,如果链接为 #
形式,则不会滚动窗口)。
防止事件使DOM冒泡。
在DOM0样式的处理程序( onclick
)中, return false
阻止默认操作,但不会停止冒泡。有关各种类型的处理程序中的 (已编辑的问题显示了原本不存在的jQuery处理程序中的return false
更多信息 。return false
。)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.