Jquery在单击时获取元素的宽度

时间:2016-06-08 17:34:07

标签: javascript jquery html svg

我使用以下jquery代码来获取SVG元素的宽度,然后单击它并将其写入控制台。我在控制台上什么也没得到,但也没有错误。我在想这是因为我没有正确地将id传递给jquery选择器。虽然不太确定。以下是代码:

$("svg").one("click", function() {
  if (this.id != 'main_svg') {
    a1 = this.id;
    console.log($(a1).width());
    $('svg').unbind('click');
    console.log(a1);
    getdiv2();
  }
});

3 个答案:

答案 0 :(得分:1)

试试这个:

$("svg").one("click", function() {
    if( $(this).attr("id") != 'main_svg' ){
        a1=$(this).attr("id");
        console.log($(this).css("width"));
        $('svg').unbind('click');
        console.log(a1);
        getdiv2();
    }
});

答案 1 :(得分:1)

$("svg").one("click", function() {
  if (this.id != 'main_svg') {
    a1 = this.id;
    console.log($('#' + a1).width());
    $(this).unbind('click');
    console.log(a1);
    //getdiv2();
  }
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<svg width="100" height="100" id=main_svg>
  <circle cx="50" cy="50" r="40" stroke="green" stroke-width="4" fill="yellow" />
</svg>

<svg width="200" height="200" id=second_svg>
  <circle cx="60" cy="60" r="60" stroke="red" stroke-width="4" fill="blue" />
</svg>

<svg width="200" height="200" id="third_svg">
  <circle cx="30" cy="30" r="30" stroke="purple" stroke-width="2" fill="orange" />
</svg>

只需在'#'之前添加id即可。使用$('#' + a1).width()。您已经使用.one()表示它只会触发一次,因此无需使用.unbind('click')

$("svg").one("click", function() {
  if (this.id != 'main_svg') {
    a1 = this.id;
    console.log($('#' + a1).width());
    $(this).unbind('click');
    console.log(a1);
    getdiv2();
  }
});

答案 2 :(得分:1)

labels = np.asarray([[1,2,3],[4,5,6]])
...
def _int64_feature(value):
  return tf.train.Feature(int64_list=tf.train.Int64List(value=value))
...
'label': _int64_feature(labels[index]),