簡體   English   中英

普通JavaScript等於jquery $(this)

[英]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做兩件事:

  1. 阻止默認操作(因此,如果鏈接為#形式,則不會滾動窗口)。

  2. 防止事件使DOM冒泡。

在DOM0樣式的處理程序( onclick )中, return false阻止默認操作,但不會停止冒泡。 有關各種類型的處理程序中的return false更多信息 (已編輯的問題顯示了原本不存在的jQuery處理程序中的return false 。)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM