使用jquery检测aria标记的值的变化

时间:2013-10-21 04:33:37

标签: javascript jquery css html5 wai-aria

如何使用jquery检测基本上是否带有aria的锚标签是否正在向上和向下切换(即它的aria-labelledby正在变为UP和DOWN)

<a href="#" class="ui-slider-updownhandle" data-corners="true" data-wrappers="span" data-theme="c" role="slider" aria-valuemin="0" aria-valuemax="1" aria-valuenow="up" aria-valuetext="Up" title="Up" aria-labelledby="label-1" style="left: 0%;"><span class="ui-btn-inner"><span class="ui-btn-text"></span></span></a>

3 个答案:

答案 0 :(得分:1)

尝试此操作并获取移动jquery滑块的当前值

$($('.ui-slider-track.ui-shadow-inset.ui-bar-c.ui-corner-all').children()[1]).attr('aria-valuenow')

答案 1 :(得分:0)

我不相信你可以主动“监控”一个元素来记录一个变化,即跨浏览器。如果你“知道”什么时候通过事件处理程序或某事触发了元素,当然你可以得到attr

 if( jQuery('.ui-slider-updownhandle').attr('aria-labelledby') === "UP" ){
   // do something.
 }

当您将元素应用于元素时,Jaws浏览器会知道“内容何时更新”。那是你指的是什么?

我看到你的咏叹调标记为label-1,所以当你说“UP”或“DOWN”时你不清楚你的意思。

请尝试此操作,我的链接不会与preventDefault()一起触发,但这样您就可以看到事件开始了。

 $('.ui-slider-updownhandle').bind('click', function(e){
      //just grabbing some values to show.
      console.log($(this).attr('aria-valuetext'), $(this).attr('aria-labelledby'));
      e.preventDefault();
 })

如果我根据您的需要做出基础,我会道歉。说实话,我不完全确定你需要什么,所以想一想我会从一个假设开始: - )

注意:如果您对attr有疑问,请尝试prop

答案 2 :(得分:-1)

jQuery.fn.extend({ 
   aria:function(arrib,NewVal){
     return (NewVal) ? jQuery(this).attr("aria-"+arrib,NewVal) : jQuery(this).attr("aria-"+arrib);
 }

});