2014-01-28 92 views
0

我想刪除項目時,它被添加,但當我點擊標籤跨度,它不工作。添加,刪除記錄由jquery

<script type='text/javascript'> 
$(document).ready(function() { 
    $('img#add_file').click(function() { 
     $('#file_tools').before('<div class="file_upload" id="f"><input name="file[]" type="file"> <span>del</span></div>');            
    }); 
    $('span').click(function() { 
     $(this).parent().hide(); 
    }); 
}); 
</script> 
+0

使用'。對()'結合事件。 –

回答

0

試試這個:

$(document).on("click", "span", function(){ 
     $(this).parent().hide(); 
}); 

提示:.on()方法可以幫助您在綁定已通過JavaScript或AJAX動態創建的未來元素的事件。

而不是$(document),最好使用$("#file_tools").parent()或者如果你知道這個父元素的id或類。

+0

選擇器應該真的是'.file_upload span',因爲他們不想錯誤地匹配頁面上的其他跨度。 –

+0

謝謝,它工作。 – TriMinh

+0

你是最受歡迎的...... :) –

0

像()添加jQuery的功能,bind()的點擊事件是這樣的: -

$("span").on("click", function(){ 
    $(this).parent().hide(); 
}); 


$("span").bind("click", function(){ 
     $(this).parent().hide(); 
}); 

注: - 活動像(),bind()的具有結合事件的能力動態創建DOM元素。

+0

你確定'bind()'可以做到這一點嗎? –

0

代碼中存在範圍問題。一種解決方案是寫這樣的:

<script type='text/javascript'> 
$(document).ready(function() { 
    $('img#add_file').click(function() { 
     $('#file_tools').before('<div class="file_upload" id="f"><input name="file[]" type="file"> <span>del</span></div>');  

     // Place those instructions here! 
     $('span').click(function() { 
      $(this).parent().hide(); 
     }); 
    }); 
}); 
</script> 

再見