为什么这不起作用? ---HTML--------
<html>
<head>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"></script>
<script type="text/javascript" src="j.js"></script>
</head>
<body>
<script>
$(document).ready(function(){
$.createHello();
});
</script>
</body>
</html>
---JS---------j.js--------
(function($){
$.fn.createHello= function() {
$('body').append('<div id="hello">Hello world</div>');
$('#hello').click(funciton(){
alert("Hello you clicker");
});
};
})(jQuery);
有什么解决方案,或者更好的方法来做同样的事情吗?
最佳答案
将 click
更改为 delegate
,因为您正在动态创建 hello 元素。以下是更新后的代码。函数也拼写错误,
<强> Live Demo
$.createHello = function() {
$('body').append('<div id="hello">Hello world</div>');
$('body').delegate('#hello', 'click', function(){
alert("Hello you clicker");
});
}
$(document).ready(function(){
$.createHello();
});
就我个人而言,我会这样写:
<强> Updated Demo
$.fn.createHello = function() {
$(this).append('<div id="hello">Hello world</div>');
$(this).delegate('#hello', 'click', function(){
alert("Hello you clicker");
});
}
$(document).ready(function(){
$('body').createHello();
});
这允许您将其绑定(bind)到页面上的任何元素并调用createHello()
我还建议查看plugin authoring reference一些好的建议。
关于jquery - 问题 | Jquery插件创建问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7245364/