[英]Create click event in jquery plugin
我想做一個簡單的插件來顯示警告,如果類是由一個jQuery插件綁定。
下面是我的html代碼
<html>
<head>
<script src="js/modal-load.js"></script>
<script>
$(document).ready(function(){
$('.modal-link').modalLoad();
})
</script>
</head>
....
<body>
<div class="hblock-1 text-4 text__uppercase color-7">
<a class="login btn btn-primary modal-link" href="/login-modal.php" data-toggle="modal" data-target="#login-modal">Log in</a>
<a href="index.html#" class="register btn btn-primary modal-link">Register</a>
</div>
</body>
這是我的插件腳本
(function($){
$.modalLoad = function(element, options){
var defaults = {
foo: 'bar',
onFoo: function() {}
}
var plugin = this;
plugin.settings = {};
var $element = $(element),
element = element;
plugin.init = function(){
plugin.settings = $.extend({},defaults, options);
plugin.add_bindings();
}
plugin.add_bindings = function(){
this.click(function(){
alert('a');
})
}
plugin.create_modal = function(){
$('body').append('<div class="modal-wrapper"></div>');
}
plugin.init();
}
$.fn.modalLoad = function(options){
return this.each(function(){
if(undefined == $(this).data('modalLoad')){
var plugin = new $.modalLoad(this, options);
$(this).data('modalLoad', plugin);
}
});
}
})(jQuery);
在html代碼中,我已經初始化了modalLoad插件。 但是當我綁定的特定類時,它不會被click事件觸發。
我的代碼有什么問題? add_bindings部分中的DOM選擇器有什么錯誤嗎?
謝謝前進
*編輯
您需要將點擊處理程序附加到$element
而不是this
。 里面add_bindings
, this
指的是插件對象不點擊的元素,以便this
不會有一個名為方法on
(你應該得到這樣的錯誤Uncaught TypeError: undefined is not a function
在您的控制台)
plugin.add_bindings = function () {
$element.click(function (e) {
alert('a');
e.preventDefault()
})
}
演示: 小提琴
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.