jQuery代码有时只能工作吗?

时间:2014-03-18 15:02:24

标签: javascript jquery html

我对jQuery仍然缺乏经验,而且我一直试图做点什么。 一般的想法是,当你点击一个图像时," alt"该图像的属性被添加到其上方的段落中。

您将在下面看到我尝试使用的代码。 现在,它有效,但只是偶尔。 例如,我点击的第一个图像总是返回" undefined"作为alt。 但如果我一直试图点击它,有时它会给我正确的。

我的图像是可选择的,当我一次选择所有图像时,它每次都会给出正确的名称。

还有其他人遇到过这个问题吗?

HTML代码(我很抱歉,用不同的语言,问我是否需要翻译:

<div id="onzeleden">
    <p id="feedback">Tijdens "De Bluts" zagen we de beste beentjes van... 
    <span id="select-result"></span></p>
    <div id="leden">
        <abbr title="Jeroen Beckers">
            <img src="fotos%20leden/Jeroen%20transp.gif"
                     alt="Jeroen Beckers"></abbr>                
        <abbr title="Luc Verreet">
            <img src="fotos%20leden/Luc%20transp.gif"
                     alt="Luc Verreet"/></abbr>
        <abbr title="Kristel Van den Broeck">
            <img src="fotos%20leden/Kristel%20transp.gif"
                     alt="Kristel Van den Broeck"/></abbr>
        <abbr title="Jesse Op de Beeck">
            <img src="fotos%20leden/Jesse%20transp.gif"
                     alt="Jesse Op de Beeck"/></abbr>                                      
        <abbr title="Maria Bogaerts">
            <img src="fotos%20leden/Maria%20transp.gif"
                     alt="Maria Bogaerts"/></abbr>          
        <abbr title="Bruno Van Impe">
            <img src="fotos%20leden/Bruno%20transp.gif"
                     alt="Bruno Van Impe"/></abbr>
        <abbr title="Brenda De Laet">
            <img src="fotos%20leden/Brenda%20transp.gif"
                     alt="Brenda De Laet"></abbr>
        <abbr title="Els Donckers">
            <img src="fotos%20leden/Els%20transp.gif"
                     alt="Els Donckers"></abbr>
</div>


Javascript代码:

$(function() {
    $( "#leden" ).selectable({
      stop: function() {
        var result = $( "#select-result" ).empty();
        $( ".ui-selected", this ).each(function() {
          var index = $( "#leden img" ).index( this );
          var sAlt = $(this).attr("alt");
          result.append(sAlt + ". ");
        });
      }
    });
});

1 个答案:

答案 0 :(得分:0)

这是因为你的点击是由你的abbr处理的,它没有alt属性。

如果您只想选择图片,您应该在可选择的声明中添加过滤选项,如下所示:

$(function() {
  $( "#leden" ).selectable({
     filter: 'img',
     stop: function() {
        var result = $( "#select-result" ).empty();
        $( ".ui-selected", this ).each(function() {

           var sAlt = $(this).attr("alt");
           result.append(sAlt + ". ");
        });
    }
  });
});

请参阅小提琴:HERE