但由于某种原因,Prototype.js正在劫持此更新调用并删除选择框的所有内容,这是我不想要的。以下是示例代码:
<html>
<head>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<script type="text/javascript">jQuery.noConflict(); </script>
<script src="//ajax.googleapis.com/ajax/libs/prototype/1.7.1.0/prototype.js"></script>
</head>
<body>
<select id="test">
<option>1</option>
<option>2</option>
</select>
<span onclick="jQuery('#test').trigger('update');">update</span>
</body>
</html>
`
这是测试的小提琴:http://jsfiddle.net/verify/xq9rb/
我认为它可能与Prototype自己的Update方法有关,它需要接收一些内容,这些内容取代了原始内容,但我不知道如何摆脱它。
答案 0 :(得分:1)
你是对的 - 因为jQuery触发事件的方式 - 它将首先尝试在元素上运行任何方法(或沿原型链向上移动),然后触发事件。
我建议使用命名空间事件来防止类似于PrototypeJS处理事件的方式的冲突。
jQuery('#test').trigger('vendor:update');