Могу ли я использовать $ (this) в качестве переменной javascript? - PullRequest
1 голос
/ 10 сентября 2011

Я пишу функцию, которая требует знания местоположения нажатого элемента div.

Мне интересно, могу ли я получить местоположение объекта, по которому щелкнули, как переменную javascript?

вот код.

HTML

<area shape="rect" coords="103, 0, 213, 25" href="#" onClick="swap3($(this),'product-details','product-specs');">

Javascript:

function swap3(currentDivId ,oldDivId, newDivId) {
    var oldDiv = currentDivId.nextAll("div." + oldDivId);
    var newDiv = currentDivId.nextAll("div." + newDivId);
    oldDiv.style.display = "none";
    newDiv.style.display = "block";
}

Ответы [ 2 ]

3 голосов
/ 10 сентября 2011

this относится к текущему элементу.

В jQuery, поскольку они используют $() для получения элемента, $(this) возвращает jQuery-эквивалент ванильного JS's this.

<area shape="rect" coords="103, 0, 213, 25" href="#" onClick="swap3(this,'product-details','product-specs');">
0 голосов
/ 10 сентября 2011

$() возвращает элемент DOM (как объект, с которым вы можете работать, это методы , свойства и т. Д.), И если вы установите переменнуюк этому переменная должна работать как jQuery-Object правильно.Но по моему опыту, иногда НЕ !и я узнаю, что лучший способ - получить переменную с помощью jQuery-selector ($).Ваш код верен, но он должен быть лучше, если вы примените следующие изменения:

function swap3(currentDivId ,oldDivId, newDivId) {
    var oldDiv = $(currentDivId).nextAll("div." + oldDivId);
    var newDiv = $(currentDivId).nextAll("div." + newDivId);
    $(oldDiv).css({"display" : "none"});
    $(newDiv).css({"display" : "block"});
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...