我正在尝试创建一个插件,但遇到了多个实例的问题。我希望代码只作用于正在使用的实例,但目前,如果我点击一个,它会同时作用于两者。如何编写只作用于我正在交互的实例的插件?下面是我正在谈论的内容的精简示例。
(function( $ ) {
$.fn.cals = function(options) {
var containing_element = this;
var opts = $.extend( {}, options);
// create a container after each element
$(containing_element).after('<div class="container">Click</div>');
return this.each(function() {
$('.container').on('click', function() {
console.log('test')
})
}); // END this.each
};
})( jQuery );
html代码是:
<script>
$(document).ready(function() {
$('.test').cals();
});
</script>
<div class="test" type="text">
<div class="test" type="text">
</html>
代码插入<div class="container>Click</div>
在两个.test
div 下方。当我单击一个时,console.log('test')
会吐出 2 个“测试”。我只希望代码作用于我正在与之交互的实例。