0

我敢肯定,这很简单,但我是 jquery 的新手,有点卡住了。

我编写了这个完美运行的代码:

function engageMaps(){
  $(".destinations #cancun").hover(
    function () {
      $(".image_map #cancunPin").addClass("active");
    },
    function () {
      $(".image_map #cancunPin").removeClass("active");
    }
  );
};

然后我尝试将项目分解为变量以使其更灵活,但无法使其工作。我写了这个:

function engageMaps(){
  var $destination = $(".destinations #cancun");
  var pin = $(".image_map #cancunPin");
  $destination.hover(
    function () {
      $pin.addClass("active");
    },
    function () {
      $pin.removeClass("active");
    }
};

这应该与第一个代码块完全相同。非常感谢任何帮助谢谢

4

3 回答 3

7

你失踪);.hover..

$destination.hover(
   function () {
     $pin.addClass("active");
   },
   function () {
     $pin.removeClass("active");
   }
);

你也错过了$。见下文。

var $pin = $(".image_map #cancunPin");

完整代码:

function engageMaps(){
  var $destination = $(".destinations #cancun");
  var $pin = $(".image_map #cancunPin"); //Added $ to pin var name as that is how it is referenced below

  $destination.hover(
    function () {
      $pin.addClass("active");
    },
    function () {
      $pin.removeClass("active");
    }
   ); //this was missing
} //removed semicolon as it is not necessary
于 2012-05-25T18:11:55.140 回答
4
    v---------- You forgot this
var $pin = $(".image_map #cancunPin");

而且你也失踪);.hover

所以,最终版本的代码:

function engageMaps() {
    var $destination = $(".destinations #cancun");
    var $pin = $(".image_map #cancunPin");
    $destination.hover(
        function() {
            $pin.addClass("active");
        }, function() {
            $pin.removeClass("active");
        }
    );
};​
于 2012-05-25T18:12:03.300 回答
4
$destination.hover(
    function () {
      $pin.toggleClass("active");
    });

所以完整的代码是:

function engageMaps(){
  var $destination = $(".destinations #cancun");
  var $pin = $(".image_map #cancunPin"); // you use pin instead of $pin
  $destination.hover(
    function () {
      $pin.toggleClass("active");
  });
};
于 2012-05-25T18:12:29.190 回答