2016-07-17 2 views
0

Я пытаюсь добавить в JavaScript созданную кнопку для возвращаемого значения этой функции, которая находит панель инструментов в ReportViewer на странице ASPX:Как добавить элемент возвращаемого значения Jquery

var findtoolbar = function() { 
    var $all = $('table div'); 
     for (var i = 0, len = $all.length; i < len; i++) { 
      if ($($all[i]).css('background-image').toLowerCase().indexOf('toolbar_bk.png') != -1) 
       return $($all[i]); 
     } 
    return null; 
} 

Тогда я стараюсь чтобы добавить кнопку на панель инструментов:

$(document).ready(function() { 
    var retval = findtoolbar; 
    (retval).append($print); 
}); 

Но это вызывает ошибку (разумеется?), поскольку append не поддерживается.

Вся идея заключается в реализации решения для кросс-браузера для MS reportiewer (которое работает только на IE8 или меньше, поскольку оно зависит от Active X).

+3

Вы не зовете 'findtoolbar'. Измените 'var retval = findtoolbar;' на 'var retval = findtoolbar();' – kaveh

+0

Большое спасибо! Я ошибочно полагал, что поскольку findtoolbar был var, он должен быть вызван без круглых скобок, поскольку я знаю, что функции должны вызываться с помощью круглых скобок. Теперь я понимаю, что, хотя объявлено как var, findtoolbar по-прежнему является функцией. Хее, извлеченный урок, еще раз спасибо. –

ответ

0

Можно упростить это, и пусть JQuery управлять петлей с помощью filter()

var findtoolbar = function() { 
     return $('table div').filter(function(){ 
      return $(this).css('background-image').toLowerCase().indexOf('toolbar_bk.png') != -1; 
     });   
    } 


    findtoolbar().append($print); 
Смежные вопросы