jQuery对象失去了jQueryness

时间:2015-11-17 17:17:19

标签: jquery liferay

Liferay 6.1; jQuery 1.11.3

var selectProduct = $('#selectProduct');
var selectVersion = $('#selectVersion');
// selectProduct instanceof jQuery = TRUE
selectProduct.change(function() {
    // selectProduct instanceof jQuery = FALSE
    $.get("<%getVersionsURL%>", {"product": selectProduct.val()}).done(function(data) {
            selectVersion.html("<option value=\"\"></option>");
            selectVersion.append(data);
}

以上代码不会从我的liferay服务器上的.jsp运行。我收到错误&#39; selectProduct.val不是函数&#39;。

似乎在.change函数中,selectProduct不再是jQuery对象。 selectProduct instanceof jQuery在函数内部返回false,但是真实的。我目前的解决方法是添加行

selectProduct = $(selectProduct);

或者每次在事件处理程序中使用它时重新包装变量。 为什么参考变化?当我在JSFiddle上测试类似的场景时,没有问题。

Fiddle DEMO

0 个答案:

没有答案