【发布时间】:2016-10-11 10:56:06
【问题描述】:
我想通过单击其子元素来删除表格行。
//cart remove line
$('.cartlineremove').click(function(e) {
$(this).closest('tr').remove()
});
这已经过测试并且有效。
但是,当我添加一些其他 jQuery 方法(另一个 php 页面的一些功能,但我所有的 jQuery 都在 main.js 中)时,删除图标不再起作用。为什么?
//on search page, price range slider
var handlesSlider = document.getElementById('slider-handles');
noUiSlider.create(handlesSlider, {
start: [ 0, 5000 ],
range: {
'min': [ 0 ],
'max': [ 5000 ]
},
format: wNumb({
decimals: 0
})
});
var inputPriceMin = document.getElementById('pricemin');
var inputPriceMax = document.getElementById('pricemax');
handlesSlider.noUiSlider.on('update', function( values, handle ) {
var value = values[handle];
if ( handle ) {
inputPriceMax.value = value;
} else {
inputPriceMin.value = value;
}
});
inputPriceMin.addEventListener('change', function(){
handlesSlider.noUiSlider.set([this.value, null]);
});
inputPriceMax.addEventListener('change', function(){
handlesSlider.noUiSlider.set([null, this.value]);
});
handlesSlider.noUiSlider.on('change', function(){
var $form = $('#filterform');
var formData = $form.serialize();
$('#pricespinner').addClass('active');
$.post('find.php', formData, function(response){
// do something with response
$('#results').load('results.php');
// do something with response ends
})
.done(function() {
$('#pricespinner').removeClass('active');
})
.fail(function(){
alert("Oops something bad happened");
});
});
//on cart page, cart remove line
$('.cartlineremove').click(function(e) {
$(this).closest('tr').remove()
});
我感觉这是由于 noUiSlider DOM,但究竟是什么原因导致我在价格范围滑块 jQuery 中添加时,删除图标停止工作?
更新https://jsfiddle.net/sq66f4ak/5/。
尝试删除 noUIslider jQuery,您会看到删除图标有效,为什么?
【问题讨论】:
-
检查浏览器开发工具控制台中抛出的错误。 Demo 立即告诉你 uiSlider 不是一个函数...这意味着缺少一个依赖项
-
@charlietfI 依赖项没有添加到小提琴中,但它在我的项目中。价格范围滑块有效,但与删除表格行功能一起添加时,后者无法工作。我会尝试在小提琴中添加依赖项
-
但更广泛的一点是......你有任何错误显示吗?
-
@charlietfl 你是对的,控制台中存在错误,即使价格范围滑块页面中的一切正常。在删除表行中有“未捕获的 TypeError:无法读取属性 'nodeName' of null”,在价格范围滑块页面中有“未捕获的 ReferenceError:$ 未定义”
-
$ not defined很容易搜索
标签: javascript php jquery html nouislider