gpt4 book ai didi

jquery - 如何在 yiiframework 中覆盖 jquery.yiigridview.js

转载 作者:行者123 更新时间:2023-12-01 07:24:28 26 4
gpt4 key购买 nike

文件位置是:yiiroot/framework/widjets/assets/gridview/jquery.yiigridview.js我需要更改此文件中的一行,以便我可以在我的需求中使用它。

//original code line 79,80
if (settings.ajaxUpdate.length > 0) {
$(document).on('click.yiiGridView', settings.updateSelector, function () {

//I need to change it to :

if (settings.ajaxUpdate.length > 0) {
$(this).parent().on('click.yiiGridView', settings.updateSelector, function () {

在不需要更改源代码文件的情况下覆盖它的正确方法是什么?

最佳答案

执行此操作的另一种方法是使用 jQuery's off method .

使用 off 您可以删除 jquery.yiigridview.js 中已添加的事件处理程序,然后使用 on 添加新的处理程序>.

类似这样的东西(在具有 GridView 的 View 中):

<?php
Yii::app()->clientScript->registerScript('myownhandlers',
"
$(document).off('click.yiiGridView', $.fn.yiiGridView.settings['your-grid-id'].updateSelector); // this will remove the jquery.yiigridview.js handler

// assign the new handler, instead of $(this) you have to use the id of the element you are interested in
$('#the-id-you-are-interested-in').parent().on('click.yiiGridView', settings.updateSelector, function () {
// your function's code, you'll have to write your function
});
",
CClientScript::POS_LOAD // this is important because the default is POS_READY, and the gridview is available only after load
);
?>

继续阅读 the on method也可以更好地理解代码。

注意:

注意事件命名空间,即 click.yiiGridView 是否正确,实际上在我的 yii 版本中没有命名空间,它只是 click,所以检查一下在覆盖之前。

关于jquery - 如何在 yiiframework 中覆盖 jquery.yiigridview.js,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10468696/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com