代码之家  ›  专栏  ›  技术社区  ›  Vivek Dhiman

无法在jquery中捕获事件

  •  1
  • Vivek Dhiman  · 技术社区  · 6 年前

    我试图在jquery中捕获事件。下面是我正在使用的代码片段。

    console.log(selectElement);
          selectElement.on('selected', function(event) {
          console.log('Value ' + event.selected + ' selected.');
    });
    

    下面是浏览器控制台中的输出。

    jQuery.fn.init [select.coral-Select-select.coral-Select-select--native, prevObject: jQuery.fn.init(1), context: coral-multifield-item.coral3-Multifield-item, selector: "select[name="./selectlevel"]"]
    

    我可以捕获select元素,但selected的事件处理程序不起作用。如果您需要其他信息,请告诉我。 enter image description here

    请参考js fiddle链接。HTML可能不准确,因为这些是Coral UI库。 https://jsfiddle.net/vivekdhiman23/Le296qw1/2/

    1 回复  |  直到 6 年前
        1
  •  1
  •   DiabloSteve    6 年前

    您可以在此elemenet上使用“change”事件并获取值。例子:

    $("select").on("change", function(){
        console.log($(this).val());
    });
    

    这需要jquery。$将在纯javascript中未定义。jsfiddle示例有相同的控制台错误。 在代码中,您需要使用:

    $('coral-multifield[data-granite-coral-multifield-name="./navtwoitems"]').each(function() {
                $(this).find("coral-multifield-item").each(function() {
                        var selectElement = $(this).find('select[name="./selectlevel"]');
    
                        selectElement.on("change", function() {
                          alert( "Handler for "+ $(this).attr("name") +" called." );
                        });
                });
          });
    

    这样,您将在控制台中看到select标记的名称。 我对jsfiddle做了一些修改。你可以在这里查一下: https://jsfiddle.net/Le296qw1/8/

    我希望这对你有用。