我正在尝试将一些更改事件绑定到之前已由jqTransform转换的select元素(http://www.dfc-e.com/metiers/multimedia/opensource/jqtransform/)。
由于在此转换后change()函数不起作用,我已经遵循Code-Pal中的excellent advice。然后我尝试使用live()事件应用click函数(因为将使用Ajax调用将来的表单)。
到目前为止,我已经得到了这个,但这不起作用:
$("div#caracteristicas-form-wrap div.jqTransformSelectWrapper ul li a").live('click', function(e) {
console.log("Testing");
});
奇怪的是,这可以起作用:
$("div#caracteristicas-form-wrap div.jqTransformSelectWrapper ul li a").bind('click', function(e) {
console.log("Testing");
});
即便如此:
$("div#caracteristicas-form-wrap div.jqTransformSelectWrapper").live('click', function(e) {
console.log("Testing");
});
所以不是jqTransform仍未加载。出于某种原因,一旦我从列表中选择元素,live()就会停止工作。知道会发生什么事吗?
这是jqtransform之后的html代码:
<div class="jqTransformSelectWrapper" style="z-index: 10; width: 194px;">
<div>
<span style="width: 179px;">Tarjeta estándar</span>
<a class="jqTransformSelectOpen" href="#"></a>
</div>
<ul style="width: 192px; display: none; visibility: visible; height: 125px; overflow: hidden;">
<li>
<a class="selected" index="0" href="#">Tarjeta estándar</a>
</li>
<li>
<a index="1" href="#">Tarjetas cantos redondos</a>
</li>
<li>
<a index="2" href="#">Tarjetas doble</a>
</li>
<li>
<a index="3" href="#">Tarjeta PVC</a>
</li>
<li>
<a index="4" href="#">Tarjeta adhesiva</a>
</li>
</ul>
<select id="id-subproducto" class="jqTransformHidden" name="subproducto" style="">
<option value="1">Tarjeta estándar</option>
<option value="2">Tarjetas cantos redondos</option>
<option value="3">Tarjetas doble</option>
<option value="4">Tarjeta PVC</option>
<option value="5">Tarjeta adhesiva</option>
</select>
</div>
提前致谢!
答案 0 :(得分:0)
我没有完全相同的选择器,但似乎一切正常:
http://jsfiddle.net/HenryGarle/DeYH2/1/
$("div#caracteristicas-form-wrap div.jqTransformSelectWrapper ul li a").live('click', function(e) {
alert("Testing");
});
修改:已更新以使用相同的选择器
答案 1 :(得分:0)
如果您在使用jQuery live
时遇到问题,可能需要查看delegate
。
答案 2 :(得分:0)
好吧,经过与jqTransform争夺太多项目之后,我已经切换到UniformJS。使用它更容易,我的生活更美好,天空中的颜色更明亮,当我走在任何街道时,女孩对我微笑。
我推荐它。