簡體   English   中英

動態創建js function

[英]Dynamically create js function

我想動態(在循環中)將 function 綁定到幾個 div 的 .click .click()事件。 點擊 function 然后應該隱藏點擊的 div。 我嘗試它的方式,我失去了對 div 的引用,以及“this”。 也不適合我。

這里是我要綁定的 function:

function do_hide() {  
    is_anim = true;  
    $(this).animate({

        opacity: 0.25,
        height: 'toggle',
        width: 'toggle'
    }, 5000, function() {

        is_anim = false;
        this.hide();
    });
}

謝謝任何幫助。

編輯:在 ghayes 的幫助下解決

do_hide() 在這里被調用:

for (var i = 0; i < n; i++)
{    
p[i] = $("#btn"+(i+1));

p[i].click(function() {
   do_hide.call(this);
 });
}

為此,您可以使用 jquery live

只需編寫代碼以隱藏在您正在實時綁定的 function 中,例如 $(this).hide()

您可以在調用時為“do_hide”綁定scope。 我會建議如下模式:(工作JSFiddle

 $('.stackoverflow').click(function() {
   do_hide.call(this); 
 });

 var do_hide = function()
 {  
   is_anim = true;  
   $(this).animate({
     opacity: 0.25,
     height: 'toggle',
     width: 'toggle'
   }, 5000, 
                  function() {
                    is_anim = false;
                    this.hide();
                  });
 };

希望這可以幫助!

Jatin 有您正在尋找的解決方案。

您是只綁定一次點擊事件,還是每次創建新 div 時綁定?

無論如何,如果你使用 .live 方法進行綁定,它會在創建元素時綁定事件。

在頁面上的任何位置添加它應該可以使它工作:

$('div').live('click',do_hide);

http://jsfiddle.net/E65wk/

$('divselector').click(do_hide);

這必須解決問題。 或者您的點擊綁定中是否還有其他代碼?

暫無
暫無

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

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