Javascript 自定义插件上的单击功能有问题
我试图创建一个插件(不是一个好的工作,但只是想学习),我有麻烦添加一个clic事件 以下是插件:Javascript 自定义插件上的单击功能有问题,javascript,jquery,plugins,Javascript,Jquery,Plugins,我试图创建一个插件(不是一个好的工作,但只是想学习),我有麻烦添加一个clic事件 以下是插件: (function($) { $.fn.selectMe = function() { return this.filter(".selectMe").each(function() { var sel = $(this); var listOpt = ""; /* Hide the <se
(function($) {
$.fn.selectMe = function() {
return this.filter(".selectMe").each(function() {
var sel = $(this);
var listOpt = "";
/* Hide the <select> tag and create a new element ".selectMe" */
sel.css("display","none");
var selName = sel.attr("name");
sel.after("<div id='"+selName+"' class='selectMe'><div class='selLabel'><span></span><i class='fa fa-lg fa-angle-down pull-right'></i></div><div class='selOptions'></div></div>");
/* Look for <option> of his parent and add them to the new element*/
sel.find("option").each(function() {
var optVal = $(this).val();
var optText = $(this).text();
/*listOpt += "{"+optVal+"} ";*/
listOpt += "<li data-value='"+optVal+"'>"+optText+"</li>";
});
$("#"+selName+" .selOptions").html("<ul>"+listOpt+"</ul>");
});
};
}( jQuery ));
(函数($){
$.fn.selectMe=函数(){
返回此.filter(“.selectMe”)。每个(函数(){
var sel=$(本);
var listOpt=“”;
/*隐藏标记并创建新元素“.selectMe”*/
选择css(“显示”、“无”);
变量selName=sel.attr(“名称”);
选择。在(“”)之后;
/*查找其父元素的名称并将其添加到新元素中*/
sel.find(“选项”).each(函数(){
var optVal=$(this.val();
var optText=$(this.text();
/*listOpt+=“{”+optVal+“}”*/
listOpt+=“”+optText+“ ”;
});
$(“#”+selName+“.selpoptions”).html(“”+listOpt+”
”);
});
};
}(jQuery));
下面是HTML代码:
<select class="selectMe" name="cars">
<option value="1">Volvo</option>
<option value="2">Saab</option>
<option value="3">Fiat</option>
<option value="4">Audi</option>
</select>
<select class="selectMe" name="options">
<option value="1">Opt 1</option>
<option value="2">Opt 2</option>
<option value="3">Opt 3</option>
<option value="4">Opt 4</option>
</select>
沃尔沃汽车
萨博
法令
奥迪
选择1
选择2
选择3
选择4
我必须在jquery插件的哪一部分编写事件以及如何编写?
如何防止双重交互?在添加新列表后,可以使用
find('li')。单击(fn)
您希望单击什么来触发事件?您是否试图使某些代码在选择某个选项时运行?@ScottKaye First:单击selOptions以显示/隐藏其内容(如单击select标记并切换此选项列表时)。第二:单击selOptions上列表中的一个选项以记录在隐藏的select中,其中一个选项被选中。
$("#"+selName+" .selOptions")
.html("<ul>"+listOpt+"</ul>") /// your code ends here
.find('li')
.click(function(){
var $li = $(this).addClass('selected');
$li.siblings().removeClass('selected');
sel.val( $li.data('value') ); // set value of select
});
$(".selectMe").selectMe()