如果我有一个div标记内部的一个中继器,我想添加一个jquery影响到每一个这些div标记,你怎么会那样做?

   <script type="text/javascript">
    $(function() {
        //run the currently selected effect
        function runEffect() {
            //most effect types need no options passed by default
            var options = {};
            //check if it's scale, transfer, or size - they need options 
            //if (selectedEffect == 'scale') { options = { percent: 0 }; }

            //run the effect
            $("#effect").effect('explode', options, 500, callback);
        };

        //callback function to bring a hidden box back
        function callback() {
            setTimeout(function() {
            $("#effect:hidden").removeAttr('style').hide().fadeIn();
            }, 1000);
        };

        //set effect from select menu value
        $(document).ready(function() {
            $("div.effect").click(function() {
                runEffect();
                return false;
            });
        });
    });
</script>

<asp:Repeater ID="repItems" runat="server">
    <ItemTemplate>
 <div class="toggler">
  <div id="effect" class="ui-widget-content ui-corner-all">
   <h3 class="ui-widget-header ui-corner-all"><%#Eval("Tag") %></h3>
  </div> 
 </div>
 </ItemTemplate>
</asp:Repeater>

我试过的上述,但是只有第一部作品。我在做什么错了??

有帮助吗?

解决方案

尝试使用类似这些div:

<div id="effect" class="effect ui-widget-content ui-corner-all">

和在jquery的使用( “div.effect”)选择器。

我“认为”,采用多东西相同的ID可能导致问题......

其他提示

id 值HTML元素 需要独特的整个文档.你用的是相同的 id 值为每一个项目,这一中继器将显示,在违反这一规则。现在,该网络是什么,你的浏览器不抱怨,但是尝试运行你的呈现HTML通过 验证程序.jQuery只行为的第一个这样的元件,因为它希望在那里 唯一的一个。

如果你换 idclass, ,你应该有更好的结果。

另一个想法要考虑的是把一个div标签周围的中继器的ID。中继器本身看起来非常简单,看你的jQuery的,它不会出现它的问题在哪中继器div标签被点击。

    $(document).ready(function() {
  $("#base").click(function() {
  runEffect();
  return false;
    });
});



<div id="base">
    <asp:Repeater ID="repItems" runat="server">
        <ItemTemplate>
     <div class="toggler">
      <div id="effect" class="ui-widget-content ui-corner-all">
       <h3 class="ui-widget-header ui-corner-all"><%#Eval("Tag") %></h3>
      </div> 
     </div>
     </ItemTemplate>
    </asp:Repeater>
</div>

我认为你需要改变的是在附加了click事件“就绪”功能 - 使用了$(“div.effect”)作为选择,它看起来并不有效的给我。我建议使用$(“UI的小组件内容”)。基于类,而不是ID(如其他人注意到这应该是唯一的)这个选择。

如果你不想使用嵌套在转发这些div类,你可以使用部分ID匹配。尽管中继器会为每个DIV您的ID开始添加信息(以确保它是唯一的),该ID还将结束“效果”,或者你使用的任何名称。

您可以使用你的优势。在jQuery代码,在那里你在“效果” ID操作,你的代码从:

$("#effect")

这样:

$("[id$='effect']")

这将选择其ID END“效应”的所有元素,所以当中继重命名每个格至“repItems_ ctl001_效应”或你有什么的ID,jQuery的仍然会发现它。

还做笔记,朝着你的问题中列出您的jQuery代码结尾,您试图访问,而不是ID基于类的“效果”一个div。只是一个供参考。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top