Событие щелчка jQuery: селектор данных

#jquery

#jquery

Вопрос:

Я пытаюсь обнаружить щелчок по привязке к разбивке на страницы через: селектор данных без результата:

 <!DOCTYPE html>

<html>
<head>
    <script type='text/javascript' src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
</head>
<body>
    <ul>
        <li>
            <a href="#" data-pageindex="1">1</a>
        </li>
        <li>
            <a href="#" data-pageindex="2">2</a>
        </li>
        <li>
            <a href="#" data-pageindex="3">3</a>
        </li>
    </ul>


    <script type="text/javascript">
        $("a:data(pageindex)").click(function (event) {
            event.preventDefault();
            alert('anchor clicked!');
        })
    </script>
</body>
</html>
  

Есть какие-либо подсказки о том, что я делаю неправильно?

Комментарии:

1. : селектор данных () существует в jQueryUI, но дело в том, что в вашем случае он неприменим, проверьте документы: api.jqueryui.com/data-selector , вы можете использовать ответ Раджапрабху Аравиндасами.

2. Если вы все еще хотите использовать свою собственную логику (с помощью :data селектора), я думаю, вам нужно настроить свой собственный :data селектор (не нужен пользовательский интерфейс jQuery), проверьте это james.padolsey.com/javascript /… , с .expr[':'] помощью , вы можете расширить многие селекторы, а не только :data .

Ответ №1:

Попробуйте использовать Has attribute selector в этом контексте,

 $("a[data-pageindex]").click(function (event) {
     event.preventDefault();
     alert('anchor clicked!');
});
  

ДЕМОНСТРАЦИЯ

Ответ №2:

В jQuery нет селектора «: data».

http://api.jquery.com/category/selectors/

Ответ №3:

Это недопустимый селектор. Вместо этого используйте вот так,

 $("ul > li").each(function(){
     $(this).find("a").data();
     $(this).click(function(){
          console.log($(this).find("a").data().pageindex);
          // do your stuff
     })
});
  

Вот ссылка на демонстрационную скрипку