【发布时间】:2012-02-25 16:31:07
【问题描述】:
以下代码块有效:
$("#data\\[User\\]\\[notify_one_day_out\\]").val("0");
$('#data\\[User\\]\\[notify_one_day_out\\]').slider('disable');
$('#data\\[User\\]\\[notify_one_day_out\\]').slider('refresh');
$("#data\\[User\\]\\[notify_one_week_out\\]").val("0");
$('#data\\[User\\]\\[notify_one_week_out\\]').slider('disable');
$('#data\\[User\\]\\[notify_one_week_out\\]').slider('refresh');
$("#data\\[User\\]\\[notify_one_month_out\\]").val("0");
$('#data\\[User\\]\\[notify_one_month_out\\]').slider('disable');
$('#data\\[User\\]\\[notify_one_month_out\\]').slider('refresh');
$("#data\\[User\\]\\[notify_on_release_date_change\\]").val("0");
$('#data\\[User\\]\\[notify_on_release_date_change\\]').slider('disable');
$('#data\\[User\\]\\[notify_on_release_date_change\\]').slider('refresh');
$("#data\\[User\\]\\[notify_available_for_purchase\\]").val("0");
$('#data\\[User\\]\\[notify_available_for_purchase\\]').slider('disable');
$('#data\\[User\\]\\[notify_available_for_purchase\\]').slider('refresh');
当我尝试将上面的内容替换为以下内容以压缩代码时:
$('[id^="data"]').val('0');
$('[id^="data"]').slider('disable');
$('[id^="data"]').slider('refresh');
我明白了:
uncaught exception: cannot call methods on slider prior to initialization; attempted to call method 'disable'
【问题讨论】:
-
第二种方法是否选择相同的元素?
-
据我所知是的。我的意思是它应该只选择所有以“数据”开头的表单元素
-
如果您重新排列调用以使其使用与第二种方法相同的顺序(即首先所有
.val(0)调用等),第一种方法是否有效?
标签: javascript jquery jquery-mobile