2014-06-22 35 views
-1

我的頁面正文中包含以下jQuery。基本上,當用戶點擊訂閱按鈕時,該按鈕被具有文本輸入和提交按鈕的表單取代。所以表單在頁面加載時不存在。在頁面加載時不存在的元素上點擊事件

默認情況下,文本輸入包含「輸入您的電子郵件」。我想在用戶點擊時清空文本字段。我知道如何做到這一點,如果頁面完成加載時表單已經存在,但這不是這裏的情況。我知道我需要使用一個委託事件,所以我查了一下,想出了你在腳本的第二部分看到的內容,但是它不起作用。

<script> 
    $('#subscribeline #subscribe').click(function(){ 
     $('#subscribeline').html("<form id='subscribeform'><input type='email' name='email' id='email' value='Enter your email'><input type='submit' name='submit' id='submit' value='OK'></form>"); 
    }); 

    $('#subscribeform #email').on("click", "td", function() { 
     $('#subscribeform #email').text(''); 
    }); 
</script> 
+2

爲什麼不使用html5佔位符而不是? – webkit

+0

@webkit謝謝!甚至不知道存在,不要經常做網頁腳本。這正是我所期待的。 – Juicy

+0

:)當然,你在下面的答案中有一個例子.. – webkit

回答

1

你寫的事件是錯誤的,寫入委託事件ul#subscribline和輸入的ID是電子郵件。

這樣做:

$("#subscribeline").on("click", "#email", function() { 
     $(this).text(""); 
    }); 

和,而不是寫作文,你可以使用HTML5的placeholder財產。

Example HERE

你可以這樣添加佔位符:

$('#subscribeline #subscribe').click(function(){ 
     $('#subscribeline').html("<form id='subscribeform'><input type='email' name='email' id='email' placeholder='Enter your email'><input type='submit' name='submit' id='submit' value='OK'></form>"); 
    }); 

,然後你不需要寫單擊事件並刪除默認的文本是輸入字段內。

相關問題