Не удалось найти элемент внутри Datalist по идентификатору с JQuery - PullRequest
1 голос
/ 02 декабря 2010

Ниже приведен Datalist. Кажется, что $ ('# ctl00_ContentPlaceHolder1_ShowListing_DataList1 $ 3 $ 0 $ inquire'). Click (function () {...} не работает, потому что когда я нажимаю одну из кнопок (в DataList), предназначен для запуска этой функции, ничего не происходит.

Как использовать JQuery для поиска кнопок по идентификатору? Таким образом, в основном функция должна запускаться при нажатии любой из этих кнопок в DataList.

Спасибо.

    <table id="ctl00_ContentPlaceHolder1_ShowListing_DataList1" class="DataWebControlStyle"
        style="visibility: visible;">
        <tbody>
            <tr>
                <td class="RowStyle">
                    <div class="ListItemContainer">
                        <div class="EnquireButton">
                            <a class="activator" id="ctl00_ContentPlaceHolder1_ShowListing_DataList1$3$1$enquire">
                            </a>
                        </div>
                    </div>
                </td>
            </tr>
            <tr>
                <td class="RowStyle">
                    <div class="ListItemContainer">
                        <div class="EnquireButton">
                            <a class="activator" id="ctl00_ContentPlaceHolder1_ShowListing_DataList1$3$1$enquire">
                            </a>
                        </div>
                    </div>
                </td>
            </tr>
        </tbody>
    </table>

    <script type="text/javascript">
        $(function() {
            $('#ctl00_ContentPlaceHolder1_ShowListing_DataList1$3$0$enquire').click(function() {
                $('#enquireOverlay').fadeIn('fast', function() {
                    $('#box').animate({ 'top': '160px' }, 500);
                });
            });
            $('#boxclose').click(function() {
                $('#box').animate({ 'top': '-200px' }, 500, function() {
                    $('#enquireOverlay').fadeOut('fast');
                });
            });
        });
    </script>

Ответы [ 2 ]

0 голосов
/ 02 декабря 2010

вы должны использовать вживую.

  $("#boxclose").live("click", function() {
                    $('#box').animate({ 'top': '-200px' }, 500, function() {
                        $('#enquireOverlay').fadeOut('fast');
                    });
                });
0 голосов
/ 02 декабря 2010

Только не используйте ID, используйте тот удобный class, который у них уже есть:

$('a.activator').click(function() {
    $('#enquireOverlay').fadeIn('fast', function() {
        $('#box').animate({ 'top': '160px' }, 500);
    });
});

Или даже лучше с .delegate():

$(".DataWebControlStyle").delegate(".activator", "click", function() {
    $('#enquireOverlay').fadeIn('fast', function() {
        $('#box').animate({ 'top': '160px' }, 500);
    });
});

Любой из этих подходов приведет к потере кода и позволит переместить его во внешний файл с возможностью кэширования для пользователя.

...