JQuery $ этот селектор - как заставить его работать - PullRequest
1 голос
/ 21 марта 2011

У меня проблемы с этим селектором $ для JQuery.Это ничего не делает.Фундаментальное ядро ​​скрипта не перестает работать.

$(this).css("background-image", 
"url(http://www.divethegap.com/update/z-images/diving-trips/tabs/bases-z.png)");

Есть идеи, почему он не работает?Я пробовал тот же эффект, используя класс.

ПОЛНЫЙ КОД (по запросу) http://jsfiddle.net/mcxez/1/:

Разметка:

<a href="?accommodation" style="background-position:-15px top;" 
   onclick="inload('?accommodation'); return false">Accommodation</a>

<a href="?travel" style="background-position:-15px top;" 
   onclick="inload('?travel'); return false">Travel</a>

js:

function inload(thelink) {
    $('.TABbase').click(function(){
        $(this).css("background-image", 
            "url(http://www.divethegap.com/update/z-images/diving-trips/tabs/bases-z.png)"); 
    });

  return false;
}

Ответы [ 4 ]

4 голосов
/ 21 марта 2011

в jQuery, this обычно является ссылкой на что-то внутри функции .. как ...

HTML

<button id="button1">1</button>
<button id="button2">2</button>

JS

$('button').click(function(){
    alert( $(this).attr('id') ); //either 'button1' or 'button2'
}

В этом случае this относится к нажатой кнопке.

Возможно, вы можете поделиться еще кодом о том, что вы пытаетесь достичь.

1 голос
/ 21 марта 2011

Чтобы $ (this) работал (или this), он должен относиться к элементу.Например:

<a href="#" onclick="alert($(this).html());return false">test</a>

или внутри цикла селектора:

$('.someClass').each(function() {
   $(this).css('background-color','#333');
});
1 голос
/ 21 марта 2011

Откуда вы звоните this откуда? this - это специальная переменная, которая ссылается на объект, на который в данный момент ссылаются в методе, который к нему применяется. Если вы ссылаетесь на this извне метода, это относится к окну dom. Например:

<script type='text/javascript'>
alert($(this)); // refers to window

$('body').bind('click', function() {
    alert($(this)); // refers to the jQuery object created by selecting the body element.
});
</script>
1 голос
/ 21 марта 2011

Вот исправленный HTML

<a href="?accommodation" style="background-position:-15px top;" data-href="?accomodation" class="my_class">Accommodation</a>
<a class="my_class" href="?travel" style="background-position:-15px top;" data-href="?travel" >Travel</a>

Вот JavaScript

$(document).ready(function(){
  $(".my_class").click(function(){
    $(this).css("background-image", "url(http://www.divethegap.com/update/z-images/diving-trips/tabs/bases-z.png)");
    return false;
  });
});
...