[asp.net-mvc]动态名称 div 中以供以后使用的部分吗?

发布时间: 2017/3/25 4:37:06
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

我有一个局部视图,其中包含一个 div,然后该 div id 是目前静态。如果多次使用这部分的视图,我 Javascript 类只加载第一专区什么是 MVC 公约 》 给这些 div 一个唯一的 ID,所以不会再发生?将生成随机数字工作吗?

示例代码︰

<div id="test"></div>

<script type="text/javascript">
  var loader = new Class('test');
</script>

所以每次我呈现的分部视图理想情况下会喜欢,递增的数字追加到 id="test

解决方法 1:

看起来像有很多方法来解决这个问题。 它看起来像是重要的你能够在加载它之后引用 JS 类中的其他元素。 有对夫妇的浮现在脑海中的方法。

1) 添加 div 动态通过 JS (我使用 jquery 在这里来简化任务)︰

将添加到您的类定义︰

<script type='text/javascript' >
  /* you need to add a static method to your class to create
     a unique id.

     Note that this should not be part of your partial view - it
     is only defined once - wherever you have defined your class.
   */
  Class.idNum = 0;
  Class.uniqueId = function() { return 'MyDiv_' + idNum++; };

</script>

部分成为︰

<script type='text/javascript' >

  // you need to have a 
  var newId = Class.uniqueId();
  var newDiv = jQuery('<div id="' + newId + '" />' );

  // figure out where you need to append it, e.g. to the html body:
  jQuery('body').append( newDiv );

  var loader = new Class( newId );

</script>

2) 但是,更简单的方法可能 id 完全避开,这更典型的这种动态代码以我的经验。 在此解决方案中,添加所有你 div 通过谐音、 辨认他们作为一组唯一的类名称,然后引用抓取所有这些 div 元素作为一个组,并遍历它们来创建您的类的类名。 当然,你将不得不重写您的类要通过他们的 DOM 元素,而不是 ID 属性引用这些 div。

部分成为︰

<div class='MyDescriptiveClassName' ></div>

然后,添加了所有分音后,你会有以下的 javascript 代码类似︰

<script type='text/javascript' >

  jQuery('.MyDescriptiveClassName').each( function( index, elem ) {
    // pass in the DOM element for accessing this div.
    var loader = new Class( elem );
  });

</script>

希望有帮助。

官方微信
官方QQ群
31647020