Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/442.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/88.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Live()函数不能处理某些元素_Javascript_Jquery_Live_Jqtransform - Fatal编程技术网

Javascript Live()函数不能处理某些元素

Javascript Live()函数不能处理某些元素,javascript,jquery,live,jqtransform,Javascript,Jquery,Live,Jqtransform,我正在尝试将一些更改事件绑定到一个select元素,该元素以前已经被jqTransform转换过(http://www.dfc-e.com/metiers/multimedia/opensource/jqtransform/) 由于change()函数在这个转换之后不起作用,所以我从Code-Pal开始就遵循了这一点。然后我尝试将click函数应用于live()事件(因为将来的表单将使用Ajax调用) 到目前为止,我得到了这个,但它不起作用: $("div#caracteristicas-for

我正在尝试将一些更改事件绑定到一个select元素,该元素以前已经被jqTransform转换过(http://www.dfc-e.com/metiers/multimedia/opensource/jqtransform/)

由于change()函数在这个转换之后不起作用,所以我从Code-Pal开始就遵循了这一点。然后我尝试将click函数应用于live()事件(因为将来的表单将使用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()立即停止工作。你知道会发生什么吗

这是JQT转换后的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>

塔尔杰塔·伊斯坦达尔
宽度:192px;显示:无;可见性:可见;高度:125px;溢出:隐藏;“>
  • 塔尔杰塔·伊斯坦达尔 塔吉塔斯坎托斯雷东多酒店 塔吉塔斯多布勒酒店 Tarjeta PVC 粘连性跗关节炎

    提前谢谢

    我没有完全相同的选择器,但似乎都能正常工作:


    编辑:更新为使用相同的选择器

    如果您在jQuery
    live
    方面遇到问题,您可能希望改为签出


    再看看

    好吧,伙计们,在为太多的项目与jqTransform进行斗争之后,我转向了。使用它更容易,我的生活更美好,天空的颜色更明亮,当我走在任何一条街上时,女孩们的微笑都能让我开心


    我推荐它。

    你有没有尝试过简化问题,给所有锚元素一个相同的类,并尝试在它们上使用
    live()
    ?为什么你不能直接使用bind呢?我假设它是通过ajax加载的内容使用的,否则他会的,Hector显然知道区别……Buf,我已经尝试给锚元素一个类(“黑客”jqtransform)并执行$(“li.select-items a”).live('click',函数(e){console.log(“Testing”);});什么也没发生。。。它与绑定事件一起工作,但是。。。好像live不认识锚。现在它正式地让我发疯了。我不能做更多的事情来帮助你,如果可能的话,我唯一能建议的是你能建立一个JSFIDLE,包含所有需要的东西并重现这个问题吗?您可以包含外部库(例如jqtransform),这样您就可以完全按照自己的方式设置它。如果不能够复制它,当你至少清楚地知道你在做什么时,很难帮助你进行调试,这不是一件容易或显而易见的事情。是的,我明白了。。。好的,唯一的解释是其他一些函数引起了某种冲突。但删除“ul-li a”解决问题的方式真的很奇怪……它可能是由jqTransform引起的,我从未亲自使用过它。尝试将要选择的位从运行jqTransform的内容之外移除/移动。看看这是否有什么不同。这可能是浏览器的问题吗?你可以在不同的浏览器中尝试你的原始代码,也可以将你的
    delegate
    版本粘贴到某个地方吗?我试过Chrome、Firefox和Safari。没有什么。我真的不明白为什么我对“绑定”和“活动”有不同的结果。$(“div#caracteristicas form wrap div.jqtransferormselectwrapper p#producto-1 ul li.select items”).delegate('a','click',function(e){});
    $("div#caracteristicas-form-wrap div.jqTransformSelectWrapper ul li a").live('click', function(e) {
       alert("Testing");
    });