我想要一個具有onclick屬性的元素。當我使用jQuery時,它似乎不起作用。這裏是我的代碼:jQuery <input> onclick屬性的元素問題
$("h1").append($("<input>", {type: "text", onclick: "alert();"}));
下面的代碼不工作:
<input type="text" onclick="alert();"></input>
我想要一個具有onclick屬性的元素。當我使用jQuery時,它似乎不起作用。這裏是我的代碼:jQuery <input> onclick屬性的元素問題
$("h1").append($("<input>", {type: "text", onclick: "alert();"}));
下面的代碼不工作:
<input type="text" onclick="alert();"></input>
你真的不希望onclick
屬性,要使用jQuery的click
事件。設置onclick
屬性適用於大多數瀏覽器,但它不會利用jQuery的規範化事件和跨瀏覽器支持。
此外,您沒有正確使用jQuery工廠方法,它需要的第二個參數是選擇器的上下文,或者,在創建html的情況下,要創建的元素的所有者文檔你真的應該花一些時間閱讀api。
可以在jQuery的鏈大部分的方法,這樣做的 「jQuery的方式」,你想要的是:
$('<input>').attr('type', 'text').click(function(){alert();}).appendTo('h1');
非常有幫助!乾杯。 – Randomblue
與我的 – rabudde
@rabudde相同的解決方案,除了我解釋了爲什麼*,並且我使用不同的上下文來附加元素。 – zzzzBov
如何像:
$('h1').append('<input type="text">').find('input').live('click', function() { alert('bam'); });
編輯:是的,我注意到,大衛·托馬斯的評論是正確的,只是改變警報實際輸出的東西很好。
不適用於我,仍然! – Randomblue
爲什麼不:
$("h1").append($("<input>").attr("type","text").click(function(){alert()}));
啊哈,** **的作品! – Randomblue
[作品在Chromium 12/Ubuntu的11.04(http://jsfiddle.net/davidThomas/k5t4j /);並且在Firefox 5中工作,如果alert()提醒*某事*](http://jsfiddle.net/davidThomas/k5t4j/1/)。 –
關於這種調試,我總是指定'alert(「click」)',因爲我認爲它需要一個字符串:) – yitwail
Hum。不適用於我的最新版本的Chrome! – Randomblue