无法在jQuery中使用.click捕获<a>

mel*_*erd 6 html javascript jquery

为什么我不能抓住这个<a>......

<a href="javascript:void(0)" class="select2-choice select2-default" tabindex="-1">
   <span class="select2-chosen">select item</span>
   <abbr class="select2-search-choice-close"></abbr>
   <span class="select2-arrow">
      <b></b>
   </span>
</a>
Run Code Online (Sandbox Code Playgroud)

...用这个jQuery?

$(document).ready(function() {
     $( ".select2-choice" ).click(function() {
     alert( "Handler for .keydown() called." );
     });
});
Run Code Online (Sandbox Code Playgroud)

我认为这是产生下拉列表的功能:

        createContainer: function () {
        var container = $(document.createElement("div")).attr({
            "class": "select2-container"
        }).html([
            "<a href='javascript:void(0)' onclick='return false;' class='select2-choice' tabindex='-1'>",
            "   <span class='select2-chosen'>&nbsp;</span><abbr class='select2-search-choice-close'></abbr>",
            "   <span class='select2-arrow'><b></b></span>",
            "</a>",
            "<input class='select2-focusser select2-offscreen' type='text'/>",
            "<div class='select2-drop select2-display-none'>",
            "   <div class='select2-search'>",
            "       <input type='text' autocomplete='off' autocorrect='off' autocapitalize='off' spellcheck='false' class='select2-input'/>",
            "   </div>",
            "   <ul class='select2-results'>",
            "   </ul>",
            "</div>"].join(""));
        return container;
    }
Run Code Online (Sandbox Code Playgroud)

实际上,我正在尝试通过在用户单击字段时添加按钮来解决此问题,在select2上添加按钮,因为我以前的解决方案不起作用.

我在Windows 8机器上使用Firefox 26.0和Chrome版本31.0.1650.63 m,64位.

请问<a href="javascript:void(0)" ... >有什么关系呢?感谢您的帮助.

Haf*_*hor 3

因为 $( ".select2-choice" ) 在执行时没有匹配任何内容,所以没有绑定任何事件。尝试

$(document).ready(function() {
   $(document).on("click", ".select2-choice", function() { ... });
});
Run Code Online (Sandbox Code Playgroud)

它将单击事件添加到在执行该函数之前过滤到选择器的文档中。