2012-08-05 50 views
-1

嗯,我有這個美麗的小網站有一個div,overflows:hidden不適合包裝的內容。每次我點擊一個範圍class'd .maisfilme,我想要margin-top: $value-120px。這是我得到的jQuery的功能應該重複每次點擊觸發器(但它does not)

$(document).ready(function(){ 
$(".maisfilme").on("click", function() { 
    var $mtop = $(this).css('margin-top'); 

     var $vai = (parseInt($mtop)+ 110 + "px"); 
    $("#filme").css ({ 
     'margin-top' : "-"+$vai 
    }); 
}); 
}); 

它實際上是做這項工作。它得到邊緣頂部,增加它的整數值+ 120px,在它之前放一個 - 所以,滑動div。 真正的問題是它只發生一次。如果我再次點擊.maisfilme,則不會發生任何事情。
有人可以知道我應該怎麼做,因此每次點擊該功能.maisfilme被點擊?

回答

0

第二次你做它會是 - ( - 110 + 110),它不會像你想要的那樣增加幅度。如果您希望每次都更負面,則需要更改標誌的邏輯。

此外,您正在從$(this)獲取css,但將其設置爲$("#filme"),因此每次都不會上升,除非碰巧是同一個對象。每次點擊時它們需要相同才能積累。

爲了讓更多的負面每次去,你可以這樣做:

$(document).ready(function(){ 
    $(".maisfilme").on("click", function() { 
     var $mtop = $(this).css('margin-top'); 

     var $vai = (parseInt($mtop) - 110) + "px"; 
     $(this).css ({ 
      'margin-top' : $vai 
     }); 
    }); 
}); 

或略有不同的版本,它給出了一個稍微不同的結果,如果上邊距的初始值不爲零(更就像你第一次迭代做什麼):

$(document).ready(function(){ 
    $(".maisfilme").on("click", function() { 
     var $mtop = $(this).css('margin-top'); 

     var $vai = (-(Math.abs(parseInt($mtop)) + 110)) + "px"; 
     $(this).css ({ 
      'margin-top' : $vai 
     }); 
    }); 
}); 
+0

好,感謝您的,但unfortunally它只能我第一次點擊(如果我再次點擊.maisfilme,什麼都不會發生 – user1576978 2012-08-05 06:16:48

+0

@ user1576978 - 你必須給我們一份HTML/CSS的工作副本,以便我們進一步提供幫助給我們一張照片。 – jfriend00 2012-08-05 06:19:30

+0

你可以看到它住在這裏 - > http://www.matheusduarte.com/site/它是在box2「Producao Musical」,與電影 – user1576978 2012-08-05 06:20:06