我不是一个程序员,但我喜欢建立原型。我所有的经验都来自于ActionScript2。
这是我的问题为了简化我的代码,我想弄清楚如何将“.click”事件附加到HTML体中已经存在的div中。
<body> <div id="dog-selected">dog</div> <div id="cat-selected">cat</div> <div id="mouse-selected">mouse</div> <div class="dog"><img></div> <div class="cat"><img></div> <div class="mouse"><img></div> </body>
我的(失败的)策略是:
1)创建一个对象数组:
var props = { "dog": "false","cat": "true","mouse": "false" };
2)使用’.each’遍历数组,并用’.click’事件扩充每个现有的div。最后,构造局部变量。
这里是一个原型:
$.each(props,function(key,value) { $('#'+key+'-selected').click(function(){ var key = value; }); });
解决方法
您可以使用的一个解决方案是为您希望点击事件处理程序绑定的任何div分配一个更通用的类。
例如:
HTML:
<body> <div id="dog" class="selected" data-selected="false">dog</div> <div id="cat" class="selected" data-selected="true">cat</div> <div id="mouse" class="selected" data-selected="false">mouse</div> <div class="dog"><img/></div> <div class="cat"><img/></div> <div class="mouse"><img/></div> </body>
JS:
$( ".selected" ).each(function(index) { $(this).on("click",function(){ // For the boolean value var boolKey = $(this).data('selected'); // For the mammal value var mammalKey = $(this).attr('id'); }); });