0

在我的代码中的某处,我有以下几行,我无法更改:

<div class="list-clickable" onclick="javascript:update_left_frame('1', $(this));">
<div class="list-clickable" onclick="javascript:update_left_frame('2', $(this));">
<div class="list-clickable" onclick="javascript:update_left_frame('3', $(this));">
// etc...

几行代码之后,我需要调用相同的函数,以便它更新左帧。这是通过 PHP 通过传递一个变量号作为第一个参数来生成的:

<script>
  // foo = ??
  update_left_frame('3', foo);
</script>

我需要获取具有相同编号的块的引用,在本例中为 3。如何设置 'foo' var 以便它采用相应的块引用?我想得到:

$('.list-clickable').attr('onclick') 

但我无法让它工作。

提前致谢!

4

4 回答 4

1

它应该是

$('.list-clickable').attr('onclick');

如果你能给号码做这样的事情

update_left_frame('3', 
  $('div').filter(function() {
    return this.attr('onclick').match(/update_left_frame\(\'3\'/); //same number as first argument
  })
);
于 2013-06-05T15:39:17.623 回答
1

尝试这个:

$('.list-clickable').on('click', function(){
    update_left_frame(($(this).index() + 1), $(this));
});
于 2013-06-05T15:49:03.687 回答
0

尝试为每个 div 元素设置一个 id ...

<div id="list-clickable1" class="list-clickable" onclick="javascript:update_left_frame('1', $(this));">
<div id="list-clickable2" class="list-clickable" onclick="javascript:update_left_frame('2', $(this));">
<div id="list-clickable3" class="list-clickable" onclick="javascript:update_left_frame('3', $(this));">
// etc...

然后要获得对 div 的引用,请使用$('.list-clickable3'),如下例所示:

<script>
  var ctrl = $('.list-clickable3');
  aggiorna_left_frame('3', ctrl);
</script>
于 2013-06-05T15:42:39.423 回答
0

OK, I found a solution that works well. I let PHP generate this:

$(document).ready(function() {
    var foo;
    $('.list-clickable').each(function() {
        var attr = $(this).attr('onclick');
        if (attr.indexOf('frame(3') !== -1) {
            foo = $(this);
        }
    });
    update_left_frame('MY_CODE', foo);
});
于 2013-06-05T16:08:17.587 回答