jquery - 问题 | Jquery插件创建问题

标签 jquery jquery-plugins

为什么这不起作用? ---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/

相关文章:

javascript - jquery 便签插件

javascript - JavaScript 中的区域设置感知数字转换

jquery - 裁剪器 JS : Positioning/size issue inside Bootstrap modal

javascript - 切换交互中的 JQuery .is() 问题

javascript - 在jquery中,如何检测段落是否包含一个链接且仅包含一个链接,没有其他内容

JQuery:在 ScrollTop() 显示进一步向下的页面之前隐藏 div 内容?

javascript - jquery:如何链接函数?

javascript - 如何让输入点击按钮

javascript - 不使用 jquery 实现 Deferred 对象

jquery - Twitter-bootstrap:如何检查弹出窗口是否已经显示?