Estoy generando valores en una tabla a través de ajax. Estos valores son s. dentro de estos roles hay un ancla que estaría en todos estos roles. Estas etiquetas de anclaje tienen una clase que utilizo para referenciarla con JavaScript.

La etiqueta de anclaje en estos roles tiene una función onclick que hace referencia a un método de JavaScript, estoy tratando de usar este método para obtener uno de los atributos de la etiqueta de anclaje clicada. Pero desafortunadamente obtengo el error indefinido cuando hago clic en las etiquetas de anclaje en el rol.

    <tr>

 <td>
                        <a href="#" onClick="JavaScript:filltransfercombo();" class="btn btn-default transferchat" data-operatorid="@avisitor.OperatorID" data-toggle="modal" data-target="#transferModal" title="Transfer chat">
                            <img src="~/Content/images/chaticons/transfer.png" height="20" width="20" />
                        </a>
                    </td>

</tr>

Mi intención es recopilar este atributo: identificación del operador de datos. Quiero usarlo para algunas manipulaciones en mi javascript.

Mi javascript está abajo

<script type="text/javascript">

 function filltransfercombo() {


            var result = "";
            var active = $('a').index(this);
            var currentoperatorid = $(active).attr("data-operatorid"); //This is the id of the currently attending operator

            console.log(currentoperatorid);

        }

</script>
0
user3576600 28 ago. 2014 a las 19:43

2 respuestas

La mejor respuesta

El evento onclick no necesita la notación javascript: ... Lo pondría en caso de que estuviera configurando el método en href.

Además, desde el evento onclick tendría acceso a la variable this, no desde el método. Sin embargo, puede pasarlo como un argumento, entonces:

<a href="#" onClick="filltransfercombo(this);" class="btn btn-default transferchat" data-operatorid="@avisitor.OperatorID" data-toggle="modal" data-target="#transferModal" title="Transfer chat">

Y js:

function filltransfercombo(sender) {
    var result = "";
    var currentoperatorid = $(sender).attr("data-operatorid"); //This is the id of the currently attending operator

    console.log(currentoperatorid);

}
1
LcSalazar 28 ago. 2014 a las 15:49

Esto se puede hacer fácilmente con jQuery.

Elimine el atributo "onClick" en sus anclajes y, en su lugar, vincule una función de clic a las etiquetas de anclaje (solo dentro de la tabla). Luego agregue su código de procesamiento dentro de esa función.

Haz algo como esto:

<script type="text/javascript">
$(document).ready(function() {
    $('table tr td a').click(function() {
        var result = "";
        var currentoperatorid = $(this).data("operatorid"); //This is the id of the currently attending operator

        console.log(currentoperatorid);
    });
});
</script>

Naturalmente, debe asegurarse de que la biblioteca jQuery javascript también esté incluida en esta página.

0
Leo Bedrosian 28 ago. 2014 a las 15:56