2013-06-30 44 views
1

在動態的傳播得到這個HTMLjQuery的:),而不是活的()思考(,生成的東西

<div id="mother"> 
    <select id="sel" name="sel"> 
    <option value="1">Un</option> 

    <option value="2">Deux</option> 
    <option value="3">Trois</option> 
</select> 

<input id="in" name="in"/> 
</div> 

mother是網頁,但兩個孩子,是動態生成selectinput

試圖通過使用像打電話給他們:

$('body').on('blur change','#mother input, #mother select',function(){ 
    alert($(this).attr('id')) 
    }) 

Javascript是所有一言不發。

這怎麼能最好的使用on()而不是live()? ...因爲與live()這是很容易弄清楚。

謝謝。

回答

1

.live()已被廢棄,拆除,不使用它在所有 version deprecated: 1.7, removed: 1.9

使用在這樣

$('body').on('blur change', '#mother input, #mother select', function() { 
    alert($(this).attr('id')); 
}); 
+0

我覺得有點錯了'','(昏迷)和''(空間)...感謝提醒......完美的工作像VOODOO! – ErickBest

1

您的活動必須空格分開:blur change,不是blur,change

+0

Yah編輯...但仍然不起作用 – ErickBest

0

也有一些是在你的頁面錯誤的其他地方。我創建了一個小提琴,顯示這方面的工作就好了:http://jsfiddle.net/evictor/Dnsm8/

<div id="mother"> 
</div> 

JS:

$(function() { 
    $('body').on('blur change','#mother input, #mother select',function(){ 
     alert($(this).attr('id')) 
    }); 

    $('<input id="test" />').appendTo('#mother'); 
}); 
+0

這個問題是錯誤的昏迷和差距或空間......正確後,如**安東尼斯**所顯示,它的工作完全像VOODOO – ErickBest

+0

這正是我發佈,你說這是不正確的大聲笑。好吧。 –

+0

對不起人......我認爲他有點更深刻地用myCodesWithMistakesIncluded(CWMI)......這就是他贏得彩票的原因,但是感謝100X的快速反應。 – ErickBest

1

您也可以使用此sintax:

<div id="mother"> 
    <select id="sel" name="sel"> 
    <option value="1">1</option> 

    <option value="2">2</option> 
    <option value="3">3</option> 
</select> 

<input id="in" name="in"/> 
</div> 

JS

$('body').on({ 
     blur: function() { 
      alert("blur"); 
     }, 
     change: function() { 
      alert("change"); 
     } 
    }, '#mother input, #mother select'); 

http://jsfiddle.net/FccfN/1/

+0

你將如何警告(attr('id'))'這個化學公式所需元素? – ErickBest

+0

你可以使用$(this):alert(「blur id =」+ $(this).attr(「id」)); 更新jsfiddle:http://jsfiddle.net/FccfN/2/ – alecasciaro

+0

曼你的化學公式看起來超級,從來沒有想到,會在項目中的某個地方使用它......再次感謝。 – ErickBest

相關問題