Javascript knockout.js是否被禁用,或者什么可以';允许'&书信电报;a>;点击禁用元素?

Javascript knockout.js是否被禁用,或者什么可以';允许'&书信电报;a>;点击禁用元素?,javascript,jquery,jquery-mobile,data-binding,knockout.js,Javascript,Jquery,Jquery Mobile,Data Binding,Knockout.js,我正在开发一个使用Jquery移动UI的页面,knockout.js组合。如果ViewModel无效,则应该有一种验证机制来禁用JQuery移动分页。我已经检查过,敲除机制工作正常,当模型从无效状态切换到有效状态时,它正在删除手动添加的disabled=“disabled”属性。问题是我能够单击禁用的分页控件(invoke knockout.js单击binding javascript函数调用)。我甚至向所有子控件添加了disabled=“disabled”。 是knockout.js忽略了di

我正在开发一个使用Jquery移动UI的页面,knockout.js组合。如果ViewModel无效,则应该有一种验证机制来禁用JQuery移动分页。我已经检查过,敲除机制工作正常,当模型从无效状态切换到有效状态时,它正在删除手动添加的
disabled=“disabled”
属性。问题是我能够单击禁用的分页控件(invoke knockout.js单击binding javascript函数调用)。我甚至向所有子控件添加了
disabled=“disabled”

是knockout.js忽略了
disabled=“disabled”
,还是有不同的解释?

Jquery移动导航控件的HTLM,在下面禁用时可以单击该控件

<a data-role="button" data-mini="true" data-icon="arrow-r" data-iconpos="notext" data-inline="true" data-transition="none" data-bind="click: function() { onTheMove.loadPagingData(bcAccountProductAudit, 'GoToNextSet', true); }, enable : PageObj.isValid()" href="#" data-corners="true" data-shadow="true" data-iconshadow="true" data-wrapperels="span" data-theme="c" title="" class="ui-btn ui-btn-inline ui-shadow ui-btn-corner-all ui-mini ui-btn-icon-notext ui-btn-up-c" disabled="disabled">  
    <span class="ui-btn-inner ui-btn-corner-all" disabled="disabled">
        <span class="ui-btn-text" disabled="disabled"></span>
        <span class="ui-icon ui-icon-arrow-r ui-icon-shadow" disabled="disabled">&nbsp;</span> 
    </span>
</a>

IsValid false和控件已禁用

函数在单击时被调用

调用起源的堆栈跟踪


Knockout本身不做任何检查,以查看某个元素是否被禁用,-
click
绑定只会侦听浏览器对该元素的click事件

disabled
不是全局属性,因此并非所有元素都支持它。如果您的
元素设置了
禁用的属性,并且您单击了该按钮,那么浏览器将不会生成Knockout可以侦听的任何单击事件。但是,
标记不支持
禁用
属性,因此无论您是否设置该属性,浏览器都将生成一个单击事件


解决此问题的最快方法是将
元素替换为支持
disabled
属性的元素(例如
),或者手动检查单击处理程序中是否禁用了该元素。请注意,虽然Knockout正确删除了
disabled
属性,当
启用
条件对于不支持它的元素(如
)计算为false时,它将无法再次添加它,因此您可能需要检查实际条件。

敲除本身不做任何检查,以查看某个元素是否被禁用。
单击
绑定即可侦听浏览器对该元素的单击事件

disabled
不是全局属性,因此并非所有元素都支持它。如果您的
元素设置了
禁用的属性,并且您单击了该按钮,那么浏览器将不会生成Knockout可以侦听的任何单击事件。但是,
标记不支持
禁用
属性,因此无论您是否设置该属性,浏览器都将生成一个单击事件


解决此问题的最快方法是将
元素替换为支持
disabled
属性的元素(例如
),或者手动检查单击处理程序中是否禁用了该元素。请注意,虽然Knockout正确删除了
disabled
属性,当
启用
条件对于不支持它的元素(如
)计算为false时,它将无法再次添加它,因此您可能需要检查实际条件。

敲除本身不做任何检查,以查看某个元素是否被禁用。
单击
绑定即可侦听浏览器对该元素的单击事件

disabled
不是全局属性,因此并非所有元素都支持它。如果您的
元素设置了
禁用的属性,并且您单击了该按钮,那么浏览器将不会生成Knockout可以侦听的任何单击事件。但是,
标记不支持
禁用
属性,因此无论您是否设置该属性,浏览器都将生成一个单击事件


解决此问题的最快方法是将
元素替换为支持
disabled
属性的元素(例如
),或者手动检查单击处理程序中是否禁用了该元素。请注意,虽然Knockout正确删除了
disabled
属性,当
启用
条件对于不支持它的元素(如
)计算为false时,它将无法再次添加它,因此您可能需要检查实际条件。

敲除本身不做任何检查,以查看某个元素是否被禁用。
单击
绑定即可侦听浏览器对该元素的单击事件

disabled
不是全局属性,因此并非所有元素都支持它。如果您的
元素设置了
禁用的属性,并且您单击了该按钮,那么浏览器将不会生成Knockout可以侦听的任何单击事件。但是,
标记不支持
禁用
属性,因此无论您是否设置该属性,浏览器都将生成一个单击事件


解决此问题的最快方法是将
元素替换为支持
disabled
属性的元素(例如
),或者手动检查单击处理程序中是否禁用了该元素。请注意,虽然Knockout正确地删除了
disabled
属性,但如果
enable
条件对于不支持它的元素(如
)计算为false,它将无法再次添加该属性,因此您可能需要检查实际条件,这是允许禁用的。为了完整性,这是允许禁用的。为了完整性,这是允许禁用的