我有这个 jQuery:
$("div.result").live("click", function(event){
alert("kokoko");
});
HTML 可以是:
<div id="result">
Flash banner code
Image with link
etc.
</div>
我想要做的是在单击 div 持有者内的任何元素时触发警报。目前,当结果中有图像横幅时,不会触发警报。
我有这个 jQuery:
$("div.result").live("click", function(event){
alert("kokoko");
});
HTML 可以是:
<div id="result">
Flash banner code
Image with link
etc.
</div>
我想要做的是在单击 div 持有者内的任何元素时触发警报。目前,当结果中有图像横幅时,不会触发警报。
尝试:
$("#result").on("click", function(){
alert("kokoko");
});
// or
$("#result").click(function(){
alert("kokoko");
});
// or just pure JavaScript
document.getElementById("result").addEventListener("click",function(){
alert("kokoko");
});
addEvent
尽管使用像这样的纯 JavaScript(使用和removeEvent
函数)解决跨浏览器问题是一个很好的做法:
(function(){
if ( document.addEventListener ) {
this.addEvent = function(elem, type, fn) {
elem.addEventListener(type, fn, false);
return fn;
};
this.removeEvent = function(elem, type, fn) {
elem.removeEventListener(type, fn, false);
};
} else if ( document.attachEvent ) {
this.addEvent = function(elem, type, fn) {
var bound = function() {
return fn.apply(elem, arguments);
};
elem.attachEvent("on" + type, bound);
return bound;
};
this.removeEvent = function (elem, type, fn) {
elem.detachEvent("on" + type, fn);
};
}
})();
切勿使用或推荐已弃用的.live() ...
$("#result").on("click", function(event){
alert("kokoko");
});
这应该这样做:
$("#result").on("click", function(){
alert("it worked!");
});
不推荐使用 live
应该是 div#result .result 将是一个类。另外,尽量不要使用 live,而是使用 .on() 。