2013-02-21 2 views
1

Я создал таблицу с использованием datatable jquery plugin. Ниже приводится JSON используетсякнопка не стрельба в datatable

{ 
"aaData":[{ 
"Month": "Jan-2013", 
"Comments": "", 
"Details": " <button class='dialog-link'>View</button>" 
}] 
} 

Так как создается ожидается кнопка.

Тогда я поставил какую-то операцию Jquery на этом

$(".dialog-link").click(function (event) { 
    console.log("clicked"); 
    window.open('details.aspx', 'winname', 'directories=no,titlebar=no,toolbar=no,location=no,status=no,menubar=no,scrollbars=no,resizable=no,width=850,height=650'); 
    return false; 
}); 

Эта функция не работает ... никаких ошибок не приходят отладки, но родительское окно освежиться и нет дочернего окна (details.aspx) открыт .... что случилось здесь

+0

. .dialog-link сгенерирован после загрузки страницы .. ?? если да, то вы должны использовать функцию. jquery ... например $ (". dialog-link"). on ('click', function (event) { –

+0

$ (". dialog-link"). on (' щелчок ', функция (событие) { alert ("clicked"); }); это также не работает – user1853803

+0

use event.preventDefault(); или event.stopPropagation(); –

ответ

2

Попробуйте это вместо:

$(document).on('click', ".dialog-link", function (event) { 
    console.log("clicked"); 
    window.open('details.aspx', 'winname', 'directories=no,titlebar=no,toolbar=no,location=no,status=no,menubar=no,scrollbars=no,resizable=no,width=850,height=650'); 
    return false; 
}); 

.click() имеет раздражающую тенденцию не работать с элементами, которые были динамически добавлены к DOM после выполняется событие загрузки страницы. Это одна из причин, по которой .click, и .bind и .live устарели.

1

Попытка:

$(document).on('click', '.dialog-link', function() { ... }); 

Присоединить обработчик события к родительскому элементу с помощью .on(), и передать селектор в качестве аргумента.