2013-12-19 40 views
0

如何激活新的輸入元素綁定模糊函數?如何激活新的輸入元素綁定模糊函數?

有時我會綁定文檔上的某些功能,當模糊,焦點,單擊,鼠標懸停或其他操作時,它會在js中執行某些操作。但此綁定不適用於新添加的元素,我如何將函數綁定到新添加的元素?

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script> 
<div class="box"> 
    <input type="text" name="a" value="a" /> 
    <input type="text" name="b" value="b" /> 
</div> 
<button onclick="live_blur()">live_blur</button> 
<script type="text/javascript"> 
    $(function(){ 
     $('[name]').blur(function(){ 
      alert(this.value); 
     }) 
    }); 

    function live_blur(){ 
     $('.box').append('<input type="text" name="c" value="c" />'); 
     // how to acitve new inputs when blur and alert value 
    } 
</script> 

回答

1

附加使用on函數的事件到document。第一個參數是事件,第二個參數指定執行事件的目標,最後一個參數是要執行的函數(事件處理程序)。

$(document).on('blur', '[name]',function(){ 
     alert(this.value); 
    }); 

JS小提琴:http://jsfiddle.net/ZWkEn/

+0

它有任何其他的方式來做到這一點。有時我使用其他功能如tooltip(),這不能使用「on」或「live」來觸發事件 –

+1

@ mingfish_004我認爲你正在尋找jQuery觸發器功能:http://api.jquery.com/trigger/ –

0

我可以向你推薦,再初始化工具提示(),dyn.adding新元素

1

後,你需要一個事件偵聽器添加到新創建的元素

var input = $('<input type="text" name="c" value="c" />'); // create new <input> 

$(".box").append(input); // append to your destination 

input.on("blur", function() { 
    console.log(this.value); 
}); // register event listener 

http://jsfiddle.net/zvuc6/

+0

我對「註冊事件監聽器」感興趣,可以寫下完整的演示代碼嗎? –

+0

你可以在我上面列出的jsfiddle鏈接中看到演示 –