[英]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);
$('divselector').click(do_hide);
這必須解決問題。 或者您的點擊綁定中是否還有其他代碼?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.